The result has seen Pep Guardiola's side move above Chelsea into third position in the table, but the reigning champions are still nine points off division leaders Liverpool on the same number of matches.
City had a big chance inside the first four minutes when Sergio Aguero released De Bruyne inside the Chelsea box, but the Belgium international sent his low effort just wide of the far post.
Abraham then curled one past the post in the 11th minute with the visitors enjoying plenty of space when they had the opportunity to break.
The Blues had another opportunity in the 16th minute when a half-cleared corner fell for Fikayo Tomori, but the centre-back's powerful strike just flew the wrong side of the post before Emerson Palmieri tested the reactions of Ederson from distance in their next attack.
Chelsea did have the lead in the 21st minute, however, when Kante, having broken into the City box, managed to hold off Benjamin Mendy before squeezing the ball past the onrushing Ederson.
Frank Lampard's side continued to pass the ball with real confidence as the half progressed, and the Etihad Stadium was almost silent approaching the final 15 minutes of the first period.
City did manage to level the scores in the 29th minute, however, when a strike from De Bruyne took a big deflection off Kurt Zouma before dropping past Chelsea's helpless goalkeeper.
It was the stroke of luck that Guardiola's side needed as Chelsea had been threatening to double their advantage during a key stage of the contest.
De Bruyne almost scored a second in the 36th minute when he worked space outside the box before striking towards goal, but the attacker's effort just missed the crossbar.
City did have a second in the 37th minute, though, when Mahrez danced past a couple of challenges and into the Chelsea box before finding the bottom corner with an emphatic finish.
Guardiola's team had a shout for a penalty late in the first half when Aguero went down under a challenge from Tomori, but referee Martin Atkinson signalled for a goal kick and VAR agreed.
A horror mistake from Kepa Arrizabalaga then presented Aguero with a brilliant chance to make it 3-1, but the Argentine saw his effort hit the crossbar, much to the Spanish goalkeeper's relief.
City also had the first chance of the second period after smart work from Mahrez, but the Algeria international just saw his low attempt drop the wrong side of Kepa's post.
Chelsea did have a half-chance to level in the 54th minute when the ball fell kindly for Kante inside the penalty box, but Fernandinho did excellently to block it behind for a corner.
De Bruyne then had a powerful effort tipped over the crossbar down the other end during a period of the match where both teams were looking for the game's fourth goal.
Kepa then made a brilliant save to keep out a powerful Mahrez strike in the 65th minute as the champions looked to score a third during a vital stage of the match.
James's running down the right was causing problems, and Abraham just failed to meet a cross from the defender in the 69th minute as Lampard's side continued to chase a leveller.
Foden tested the reactions of Kepa in the 72nd minute with City eyeing a third, before James took a chance inside his own box by making contact with Aguero.
Willian then just missed the crossbar with a rasping strike in the 80th minute as the home side still led 2-1 entering the final 10 minutes of the key encounter in Manchester.
Chelsea had plenty of the ball in the latter stages, but aside from a long-range Mason Mount free kick, the visitors did not have a serious chance to level the scores as City managed to bounce back from their defeat at Liverpool before the international break.
Sterling thought that he had scored a third late on when he squeezed one past Kepa, but VAR ruled out the England international's stoppage-time effort.
Next up for City is a home game against Shakhtar Donetsk in the Champions League on Tuesday night, while Chelsea will take on Valencia in the same competition on Wednesday.
MANCHESTER CITY (4-3-3): Ederson; Cancelo, Stones, Fernandinho, Mendy; D Silva (Foden 67'), Rodri (Gundogan 52'), De Bruyne; Mahrez, Aguero (Jesus 76'), Sterling
CHELSEA (4-3-3): Kepa; Azpilicueta, Zouma, Tomori, Emerson (James 59'); Kante, Jorginho (Mount 74'), Kovacic; Willian, Abraham (Batshuayi 74'), Pulisic