N'Golo Kante and David Luiz were on target for Maurizio Sarri's men as City paid for failing to take advantage of their first-half dominance.
"I am very happy with the win because it is not very easy to win against Manchester City or Pep Guardiola," said Chelsea boss Maurizio Sarri.
Liverpool now lead City by a point after Mohamed Salah's hat-trick secured an impressive 4-0 win at Bournemouth.
City had looked imperious in recent weeks, winning their previous seven Premier League games, and started in the same vein.
However, Pep Guardiola's men missed the injured Sergio Aguero up front as Raheem Sterling and Leroy Sane wasted early chances.
"Chelsea are a good team, good players but in the first half it was incredible, we were exceptional," said Guardiola.
"In general we were fantastic. I don’t have any regrets, we came and showed we wanted to win.
"We created chances. They had one in 44 minutes and we conceded a goal, sometimes that happens."
Chelsea had barely been in the City half before taking the lead approaching the break, when Eden Hazard teed up Kante to fire into the roof of the net.
However, it was the hosts who enjoyed the better of the second period and sealed a huge victory 12 minutes from time when Luiz's looping header from Hazard's corner dipped in via the crossbar.
"It is difficult for us to find motivation but when we are (motivated), we are a very strong team," added Sarri.
"Today we played with a very good level of application, determination and the right level of aggressiveness."
Salah back to his best
Salah had been rested from the start for Wednesday's 3-1 win at Burnley that kept Jurgen Klopp's men on City's coat-tails, and the Egyptian looked to have benefited from a break as he looked more like the player who netted 44 goals in an incredible debut season at Anfield.
The visitors were slightly fortunate to take the lead on 25 minutes when Asmir Begovic fumbled Roberto Firmino's long-range shot and Salah's follow-up effort was allowed to stand despite him appearing to be marginally offside.
Salah made the game safe by showing determination to stay on his feet despite being fouled before finding the bottom corner early in the second half.
Steve Cook's own goal then made it 3-0 before Salah sealed his hat-trick by remaining remarkably cool to dribble past Begovic twice before prodding home.
"What Mo did around his two goals in the second half was just exceptional," said Klopp. "I don’t know at the moment a lot of players who would have scored these two goals."
Man Utd up to sixth
United ended a four-game winless run in the league with a comfortable victory over bottom club Fulham.
Jose Mourinho left Paul Pogba on the bench again as he rang the changes, and three of those brought in -- Ashley Young, Juan Mata and Romelu Lukaku -- scored in the first half.
"We were strong, aggressive and intense," said a happy Mourinho. "At times it was beautiful football. The first half was perfect."
Aboubakar Kamara's penalty pulled a goal back for Fulham, but any hope of a fightback from the visitors was ended by a red card for Andre-Frank Zambo Anguissa and Marcus Rashford added a fourth for the hosts.
Tottenham remain ahead of Chelsea and Arsenal in third courtesy of a 2-0 win at Leicester.
Mauricio Pochettino could even afford the luxury of leaving Harry Kane on the bench ahead of Tuesday's crucial Champions League visit to Barcelona as Son Heung-min and Dele Alli struck for Spurs either side of half-time.
Arsenal extended their unbeaten run to 21 games but left it late to beat lowly Huddersfield 1-0 thanks to Lucas Torreira's bicycle kick seven minutes from time.
Ralph Hasenhuttl got off to a terrible start as Southampton manager as Callum Paterson scored the only goal in a 1-0 win to move Cardiff three points clear of the bottom three and leave Saints level on nine points with Fulham.
Burnley also moved out of the drop zone by beating Brighton 1-0 to win for the first time in nine games, while West Ham's third straight win -- 3-2 over Crystal Palace -- moved them into the top half.