Manchester United were staring down the barrel of defeat with 8 minutes remaining, but Amad Diallo scored a hat-trick to secure all three points for Ruben Amorim’s side.
Southampton started positively, with Kamaldeen Sulemana and Tyler Dibling creating chances, and took the lead on 43 minutes through Manuel Ugarte’s own goal.
It was a shocking first-half from the hosts and it was obvious that things needed to change in the second half.
The second period was open but Southampton defended their one-goal lead until the final 10 minutes, when everything changed.
Amorim’s men finally leveled on 82 minutes through Amad’s confident finish.
The 22-year-old then scored two more well-taken goals, volleying home emphatically and capitalizing on a sloppy touch by Taylor Harwood-Bellis, to complete his hat-trick and send the Stretford End into a frenzy.
The win moved United up to 12th, while Southampton’s winless away run in the Premier League stretched to 18 matches.