Romelu Lukaku took off his shirt to celebrate scoring a late winning goal in a memorable game at Old Trafford that swung one way and the other.
Three of the five goals on display were outstanding as United boosted their top-four prospects and leave Southampton just a point above the relegation zone.
The visitors took an unexpected lead before half-time when Yan Valery struck from long range strike for his first senior goal.
But United fought back early in the second half when Andreas Pereira fired a cracker for his first United goal since 2015 before setting up Lukaku to give United the lead.
James Ward-Prowse levelled with 15 minutes left with a terrific free-kick but Ole Gunnar Solskjaer’s men staged a late rally with Lukaku scoring his second goal of the afternoon after 88 minutes.
Paul Pogba was then denied an injury-time penalty when his stuttering run-up failed to fool Angus Gunn in Southampton’s goal.
United made a fast start with Lukaku – who had scored twice at Crystal Palace on Wednesday – twice denied by excellent stops from Gunn.
MATCH FACTS AND STATS
Manchester United (4-3-3): De Gea 5.5: Young 5.5, Smalling 6, Lindelof 6, Shaw 6.5; Pereira 7.5 (Fred 82 6.5), McTominay 6.5, Pogba 6; Lukaku 8, Rashford 6 (Chong 90), Sanchez 5.5(Dalot 52 6)
Subs not used: Bailly, Grant, Rojo, Gomes
Booked: Pogba, Lukaku
Goals: Pereira 53, Lukaku 59, 88,
Manager: Ole Gunnar Solskjaer
Southampton (3-4-3: Gunn 7.5; Bednarek 6, Yoshida 6 (Gallagher 90), Vestergaard 6; Valery 7, Romeu 6, Hojberg 6, Bertrand 7; Ward-Prowse 7, Austin 6.5 (Armstrong 63 6.5), Redmond 6
Subs not used: McCarthy, Stephens, Elyounoussi, Targett, Slattery
Goals: Valery 26, Ward-Prowse 75
Manager: Raplh Hasenhuttl
Referee: Stuart Attwell 6
But after the visitors had a penalty claim turned down for Chris Smalling’s tug on Ryan Bertrand, their manager Ralph Hasenhuttl was able to punch the air with glee after 26 minutes.
Charlie Austin released Valery down the right and then dashed into the penalty area expecting a return ball. Instead, the 20-year-old Frenchman pulled the trigger from 25 yards with such power that a diving David de Gea could only succeed in pushing the ball into the roof of the net.
The partnership between Lukaku and Marcus Rashford took time to develop. At one point, they both went for the same cross into the box from Luke Shaw and looked at each other in astonishment as the ball bobbled past both of them.
Alexis Sanchez’s dreadful time at United suffered a new blow when he was taken off after 52 minutes following a challenge by Jan Bednarek that caught him on the ankle.
But within a couple of minutes, United were level with Ole Gunnar Solskjaer rewarded in his policy of using players who have graduated through the United academy.
Andreas Pereira, now 23 with two loan spells in Spain behind him, had the confidence to collect the ball midway in Southampton’s half and curl a shot from 25 yards into the top corner. It was only his second goal for United – the other coming in the League Cup against Ipswich.
Infused with a new confidence, the midfielder then quickly set up United’s second goal to put them ahead.
With Maya Yoshida in close attendance, Pereira was stumbling as he played a pass to Lukaku who was lurking on the edge of the penalty area.
Given the benefit of the doubt over offside – his foot may have been millimetres off but it was too close to call – the £75million Belgian made no mistake with a composed low finish past Gunn for his first Premier League goal at Old Trafford in 2019.