City dominated the opening period and, after David Silva had missed a penalty, eventually got their reward when Carlos Tevez beat Kelvin Davis at his near post, having been played in by Samir Nasri. There was some bad news for Roberto Mancini's men, however, as Sergio Aguero was stretchered off with a knee problem.
The hosts wasted a glut of chances at the beginning of the second half, and were punished when substitute Rickie Lambert equalised with a composed first-time strike. Southampton went into dreamland shortly afterwards when, following a mistake from City debutant Jack Rodwell, Steven Davis found the net at the end of a counter-attack.
But City, who left it so late before beating QPR 3-2 to take the Premier League title last season, did not have to wait long to level: Edin Dzeko pouncing after Saints failed to clear a corner. And it was another poor clearance, this time from Danny Fox, that allowed Samir Nasri to notch a winner with a half-volley.