A controversial Samir Nasri goal and an Edin Dzeko header moments later turned a tight game in City's favour just before the interval after Rickie Lambert's penalty had cancelled out one from Yaya Toure.
Substitute Stevan Jovetic made victory certain before Toure hit a post late on, but for Southampton prime concerns were over a knee injury to 17-goal top scorer Jay Rodriguez.
The England World Cup hopeful was carried off on a stretcher after landing awkwardly midway through the first half and the club, and watching national boss Roy Hodgson, will anxiously await updates.
City eased through the second half, but were sluggish before the break, despite getting off to a perfect start courtesy of Toure's 22nd goal of the season inside three minutes.
Dzeko got the better of Jose Fonte in the box and went down after the defender left a leg trailing for him to run into.
Southampton argued the Bosnian made the most of the contact, but there seemed no doubt it was a foul and Toure calmly sent back-up goalkeeper Paulo Gazzaniga, playing for the injured Artur Boruc, the wrong way.
City could have doubled their lead moments later as they created a clear-cut opportunity for Nasri, but the Frenchman's low drive flew narrowly wide.
Despite their blistering start, City could not maintain the intensity and Southampton, with confidence still intact, clawed their way back into the contest.
City were given a warning as Rodriguez almost picked out Lambert with a dangerous cross and Adam Lallana was unlucky not to bring a Lambert ball under control.
Lambert was only just off-target from a free-kick, but City threatened again when Jesus Navas sliced wide after an appeal for handball against Dejan Lovren was denied.
Play was held up when Rodriguez went down in considerable agony, clutching his knee, after landing heavily when unchallenged.
The player was eventually carried off, to generous applause, on a stretcher, but there were fears his season - and World Cup chances - could be over.
Saints soon regained their composure, although City went close again as Dzeko thumped a header against the bar from Nasri's floated free-kick.
Jack Cork was tripped by Pablo Zabaleta as he burst into the box and Lambert maintained his 100 percent Saints penalty record to tuck home a deserved equaliser.
It might have got worse for City as Morgan Schneiderlin failed to take advantage of a clear opportunity from a corner.
But the visitors were stung as City hit them with two goals in first-half injury time.
They benefited from a huge slice of luck for the first of them as Dzeko flicked a pass from Toure into the path of a clearly offside David Silva.
Silva made the most of the opportunity as he set up Nasri for a simple close-range finish.
Saints boss Mauricio Pochettino complained to the officials and his frustration was compounded moments later as Dzeko headed in a third goal, off a post, from an Aleksandar Kolarov cross.
City wanted another penalty after the restart when a charging Toure went down following a challenge from Fonte and Lovren but this time referee Chris Foy was not interested.
Kolarov had a shot deflected over and Dzeko tested Gazzaniga before horribly miscuing from the rebound.
Gazzaniga saved with his feet from Navas and substitute Alvaro Negredo could not get past Fonte after being played through.
Lambert might have given Saints late hope but drove across goal from a good position before Toure was booked for diving for attempting to win another penalty.
Jovetic added the fourth, four minutes after replacing the influential Silva, when he tapped home a Navas cross after tricky work from the Spaniard.
Toure hit a post from edge of box as City eased towards a crucial victory.