Sterling pounced for the game’s only goal when he turned in Kevin De Bruyne’s cross in the 16th minute without reply from the hosts.
Southampton weren’t without their chances, however, with Danny Ings and Che Adams both coming close to equalisers either side of the break.
Jannik Vestergaard continued to be a thorn for opposition defenders, getting free for a pair of headers from James Ward-Prowse corner kicks, but he couldn’t add to his tally of goals.
Ings was forced off through injury four minutes before halftime, with Nathan Tella get the most meaningful minutes of the league campaign.
Tella nearly set up Adams at the back post, but some last ditch defending from City did enough to put the forward off from putting his header on target.
Bernardo Silva and Raheem Sterling each had chances to see out the match without trouble, but failed to produce the final touch needed.
Alex McCarthy did his part to give Saints a chance to salvage a point, denying Ilkay Gundogan from the edge of the box.
The loss drops Southampton to fourth in the table still on 24 points and one place above their counterparts Manchester City.
Southampton (4-4-2): McCarthy, Bertrand, Vestergaard, Bednarek, Walker-Peters; Djenepo (Redmond 59), Ward-Prowse, Walcott; Adams (N’Lundulu 82), Ings (Tella 41)
Unused subs: Forster (GK), Diallo, Salisu, Stephens, Long
Bookings: Romeu (38), Ward-Prowse (42)
Manchester City (4-2-3-1): Ederson; Cancelo, Dias, Stones, Walker; Rodri, Gundogan; Sterling, De Bruyne, Bernado Silva; Torres (Mahrez 72)
Unused subs: Carson (GK), Ake, Mendy, Fernandinho, Zinchenko, Foden, Nmecha, Aguero
Goals: Sterling (16)
Bookings: De Bruyne (25), Ederson (81)