© Getty Images
The away side took the lead in the third minute with a headed goal from Emanuele Giaccherini, who met Sebastian Larrson's outswinging corner.
There was an immediate response from the Saints, but Jay Rodriguez's strike was ruled out for offside.
Rickie Lambert almost got the equaliser when he met James-Ward Prowse's cross, but Kieren Westwood clawed it away.
More good work by Ward-Prowse saw the ball fall for Rodriguez, but his shot deflected wide for a corner.
Sunderland claimed for a penalty but Jozy Altidore's fall failed to convince the referee.
The home side then had their own penalty appeal when Jose Fonte went down in the box trying to reach Ward-Prowse's free kick.
Fonte was again in the action soon after, when his shot from 35 yards drifted wide.
The home almost got level when Lambert nodded the ball into Adam Lallana's path, but the captain's shot went inches wide.
New signing Osvaldo then made a play to Rodriguez who saw his shot saved by Westwood.
Lambert came even closer to the equaliser but his goal-bound strike produced another save from Westwood.
Southampton were having the majority of the play and Rodriguez was again involved in the attack but smashed a 20-yard effort over the bar.
Osvaldo went close to scoring on his debut but couldn't reach Lambert's pass. However, the former Roma striker was then booked for a foul on Modibo Diakite.
The home pressure paid off with just two minutes left as Fonte headed in Ward-Prowse's cross.