Oriol Romeu had cancelled out Kevin De Bruyne’s deflected free-kick a quarter-hour from full-time -- and just when it appeared Saints were headed to a signature moment under Mauricio Pellegrino, Sterling curled an effort beyond the reach of Fraser Forster.
Southampton looked to be the first team to deny City a win since August, but instead dropped points from a promising position against the Premier League leaders.
A compact approach frustrated City and Southampton was nearly rewarded only for Wesley Hoedt’s header to strike the crossbar on 15 minutes.
Forster, who has been bombarded with criticism in recent weeks, did his part to keep Saints level as he kept out Sergio Aguero and Gabriel Jesus in quick succession.
The Saints keeper also did well to stop Fernandinho from finding an opener when he palmed away an effort from the midfielder.
City, however, found their missing breakthrough two minutes after the restart.
De Bruyne whipped in a free-kick that glanced off the leg of Virgil van Dijk before rustling the back of the Southampton net to the chagrin of the away supporters, who would have been pleased with their team’s first half display.
The hosts appeared set to run away with the game only for Forster to thwart Jesus, as well as De Bruyne with two fine saves.
Southampton would reward their keeper’s form with an equaliser 15 minutes from full-time. Second time lucky, Romeu forced in the ball off the underside of the crossbar after being teed-up by Sofiane Boufal.
Sterling had other ideas as he shifted across the top of the box before received a return pass, which he looped right-footed into the corner.
Manchester City: Ederson, Walker, Otamendi, Kompany, Delph, Fernandinho, Gundogan (Bernardo Silva 80), De Bruyne, Sterling, Jesus (David Silva 74), Aguero.
Unused subs: Bravo (GK), Danilo, Mangala, Diaz, Zinchenko.
Goals: De Bruyne (47), Sterling 90+6).
Bookings: Kompany (36).
Southampton: Forster, Cedric (McQueen 87), Yoshida, van Dijk, Hoedt, Bertrand, Hojbjerg (Boufal 64), Romeu, Lemina, Redmond, Long (Austin 83).
Unused subs: McCarthy (GK), Tadic, Davis, Gabbiadini.
Goals: Romeu (75).
Bookings: Long (66).