The 22-year-old was set upon by a knife-wielding attacker who stabbed him in the neck outside a restaurant in the north-eastern Swiss city at around 6pm last Friday.
Passers-by managed to restrain the attacker, a 42-year-old Swiss man who was then arrested by police.
The victim has now died from his injuries in hospital, St Gallen police told news agency ATS on Wednesday.
The motive for the crime is still unknown, and it remains unclear if the two men knew each other.
The attacker was known to the police but not for violent offences.