Stuart Armstrong scored his third goal of the season before Cedric Soares added a sensation free-kick to give Southampton a 2-0 lead inside 20 minutes.
But Romelu Lukaku ended a goal drought of 982 minutes and Ander Herrera drew Manchester United level in what was a lively first-half.
Both Manchester United and Southampton had half chances after the break, but the second 45 minutes didn’t live up to the first.
Ashley Young threatened the goal with a free-kick whilst former Saints man Luke Shaw fired wide of the post for United, who is six points adrift from the top four in the Premier League.
Nathan Redmond provided a crucial spark throughout, but was denied when his dipping effort was tipped off the bar on 81 minutes.
Southampton is still with just one win in their last 18 games at St Mary’s.
Southampton: McCarthy, Valery, Vestergaard, Yoshida, Stephens, Cedric, Lemina (Davis 90+2), Hojbjerg, Armstrong, Obafemi (Gabbiadini 64), Redmond.
Unused subs: Gunn (GK), Hoedt, Ward-Prowse, Romeu, Austin.
Goals: Armstrong (13), Cedric (20).
Bookings: Hojbjerg (36), Lemina (54), Vestergaard (59), Armstrong (90+5).
Manchester United: De Gea, Young, Jones, Matic, Shaw (Dalot 72), McTominay, Fellaini, Ander Herrera, Pogba, Rashford (Martial 77), Lukaku (Lingard 86).
Unused subs: Romero, Dalot, Marcus Rojo, Fred, Mata.
Goals: Lukaku (33), Ander Herrera (39).
Bookings: Rashford (18), Fellaini (34), Pogba (53), Young (90+3).