Goalkeeper Joe Hart was at fault for Steven Davis' goal for 2-0, and Edin Dzeko's 12th in the league this season for City in the 39th minute did not signal the fightback it promised.
Chelsea won for the first time in five matches to retain third place, thrashing third-bottom Wigan 4-1 to ease the pressure on manager Rafael Benitez.
Veteran midfielder Frank Lampard scored his 12th goal this season, moving closer to Bobby Tambling's club record total of 202, as the 34-year-old raised speculation that he will earn a new contract.
"It is not my decision. I am trying to improve him, if that is possible, because he is a great influence," Benitez said.
Chelsea stayed a point ahead of fourth-placed Tottenham, whose winger Gareth Bale scored both goals in a 2-1 win at home to Newcastle to take his tally to 13 in the league.
Arsenal moved above Everton into fifth with a 1-0 win at Sunderland as Santi Cazorla scored the only goal, while Swansea went above Liverpool in seventh after beating bottom team Queens Park Rangers 4-1 thanks to two goals from Michu, who now has 15 in the EPL this season.
Juventus' hopes of a second successive Serie A title were boosted after second-placed Napoli dropped points against fellow Scudetto hopefuls Lazio.
Juve won 2-0 at home to Fiorentina as strikers Marko Vucinic and Alessandro Matri scored in the first half -- the latter despite losing a boot and playing on in his sock.
That put the pressure on Napoli to reduce a six-point deficit, but Walter Mazzarri's team needed an 87th-minute equalizer from defender Hugo Campagnaro to come away with any reward.
Striker Sergio Floccari volleyed an 11th-minute opener, but Argentina international replied in kind at the end to keep his side six points clear of the third-placed Rome team.
Bayern Munich marched towards a 23rd Bundesliga title on Saturday, moving 15 points clear in the title race after a 4-0 victory at home to Schalke.
With two-time defending champions Borussia Dortmund and third-placed Bayer Leverkusen dropping points earlier in the day, Jupp Heynckes' team romped to victory against a Schalke side which had won just one out of nine games.
Young Austrian star David Alaba scored twice, the opener from the penalty spot after Franck Ribery was fouled.
Bastian Schweinsteiger made it 2-0 with a free-kick, then after the break Mario Gomez set up the 20-year-old Alaba and then wrapped up the win with his first goal of 2013 in his first start this year.
Dortmund crashed 4-1 at home to Hamburg, with South Korea forward Son Heung-Min and Latvian Artjoms Rudnevs scored twice each as both teams had a man sent off.
Robert Lewandowski put the home side ahead in front of a crowd of more than 80,000 but Rudnevs and Son netted before the Poland striker was sent off.
Hamburg lost defender Jeffrey Bruma after halftime following his foul on Marco Reus, but
Rudnevs headed home on 62 and 20-year-old Son' netted at the end as Hamburg moved up to fifth.