But as they did the double over Southampton, they again showed a soft spot for the ailing south coast side by missing a penalty.
Defender Bradley Orr was the culprit putting a weak effort too close to Saints keeper Kelvin Davis.
The spot-kick had been awarded after Nicky Maynard had been pulled down by Rudi Skacel.
A tremendous save by Davis from Gavin Williams and a wayward finish by Dele Adebola had already kept Southampton from going behind.
Their suspect defence was being caught by balls over the top but they rallied around the weak penalty - City's fourth spot-kick miss of the season - and for a spell were very much on top.
Both Morgan Schneiderlin and Jason Euell thundered shots against Adriano Basso's left-hand post.
When they won their first corner they were thwarted by Gavin Williams, who cleared Jan-Paul Saeijs's header off the line.
Southampton weren't to get another chance like that until deep in the second half when Saeijs missed an open goal from six yards after Basso had failed to hold a shot from Skacel.
The result all hinged on a hotly disputed Adebola goal after 34 minutes with the Southampton bench joining in the protests that he was offside as he went to meet a long curling lob from Orr, but the officials decided Saeijs had played him onside.
The Saints staged a whole-hearted fightback in the second half but it all went wrong when keeper Davis went up in injury time for the final corner.
Basso caught it threw it out and sub Ivan Sproule fastened onto it and ran 80 yards to score into an open net.