Kevin De Bruyne became the fastest Premier League player to reach 100 assists as Manchester City cranked up their bid for a third successive title.
The Belgian midfielder sent Pep Guardiola’s men on their way just before half-time by setting up the opening goal for Erling Haaland.
De Bruyne was also involved in the move which saw Jack Grealish score and won the penalty which enabled substitute Julian Alvarez to seal the deal from the spot after Sekou Mara had briefly cut the deficit with a consolation that Ruben Selles’ side deserved for their endeavour.
City now trail leaders Arsenal by five points - and the Gunners now go to face Liverpool at Anfield.
Haaland scored twice to take his tally for the season to 44.
And his second of the evening - a spectacular falling volley from Grealish’s cross - was so special that even the home fans joined in the applause.
But De Bruyne remains Pep Guardiola’s most important influence.
And boy did they need him at St Mary’s.
City were decidedly second best for 44 minutes against the league’s bottom side.
But then De Bruyne gave Haaland the opportunity to score his 43rd goal of the season with the kind of cross the Norwegian must dream about in his deepest of slumbers.
It was his 100th assist in his 237th game - and that’s 56 games faster than the previous best set by Cesc Fabregas.
Ryan Giggs, Wayne Rooney and Frank Lampard are the only others to create a century of goals during the Premier League era.
City’s need to win this game on the south coast was obvious as they step up their bid for a third successive title.
But you wouldn’t have thought it after the first 44 minutes.
Southampton took the gloves off, got on the front foot - and City didn’t seem to really fancy it.
Kalmaldeen Sulemana ran the visitors ragged whenever he got on the ball and with James Ward-Prowse and former City enforcer Romeo Lavia controlling City in midfield, the champions just couldn’t get a grip of the contest.
Sulemana, who cost a club record £18 million last summer, had two golden chances to give Saints a lead they deserved - but couldn’t take either.
First he raced clear after City were caught with too many players forward at a corner.
But Sulemana was slowed down by Nathan Ake and then allowed Ederson to snatch the ball off his toes after taking a poor touch.
The 21-year-old had another opportunity thanks to Lavia’s gorgeous reverse ball.
This time, he couldn’t decide whether to shoot or pass and did neither as he sent the ball wide of the far post.
City finally woke up.
De Bruyne had sent Haaland in on goal earlier in the half only for the Norwegian to be betrayed by a poor first touch.
Haaland also headed a De Bruyne cross wide after it had looped to him at the far post.
When a third chance came his way a minute before the break, he buried it.
De Bruyne’s first cross from the left was charged down.
But his second effort was caressed beautifully onto Haaland’s brow as he arrived in Southampton’s six-yard box behind Armel Bella-Kotchup and he couldn’t miss.
Southampton have now won just two of their last 11 league games.
Their hopes of repeating their shock Carabao Cup victory over City were virtually over in the 58th minute when De Bruyne sent Grealish clear.
The midfielder’s first effort was saved by Gavin Bazunu, but Grealish sent his second attempt high into the top corner.
Haaland scored again in the 68th minute when De Bruyne combined with Grealish and his cross was brilliantly volleyed into the top corner by the striker as he arched backwards.
Southampton got their reward when Mara fired into the bottom corner from Moussa Djenepo’s low cross with 18 minutes remaining.
But three minutes later, De Bruyne was sent sprawling by Kyle Walker-Peters and Alvarez stepped up to score from the spot.