Match ends, Manchester City 3, Leicester City 1.
Liverpool remain 10 points clear at the top of the table after an enthralling battle between their two nearest rivals saw Manchester City fight back from a goal down to beat Leicester.
Pep Guardiola's side stay third despite this impressive victory, a point behind the Foxes and 11 behind the leaders - who now have a game in hand - but this was a timely reminder of how good the defending champions are at their best.
Manchester City had to do it the hard way, falling behind to Jamie Vardy's superbly taken breakaway goal, but inspired by a magnificent performance by Kevin de Bruyne, they roared back to take the points.
Vardy silenced Etihad Stadium when he raced on to Harvey Barnes' pass, out-paced Fernandinho and chipped Ederson to score with Leicester's first effort at goal.
The home side had dominated the early exchanges but, for the fourth home league game in a row, they found themselves behind and, just as in their defeat here by Manchester United, looking vulnerable to fast counter-attacks.
While that game had ended in demoralising defeat for Manchester City, this one would have a very different outcome.
Guardiola continued to urge his players forward, despite the danger posed by Vardy on the break, and they were soon level.
Riyad Mahrez, who was being half-heartedly booed by fans of his former club, cut in from the right and fired in a low shot that cannoned off Caglar Soyuncu and left Kasper Schmeichel helpless.
Leicester dug in, with Schmeichel making a series of saves to ensure the hosts had to wait to turn their vastly superior possession into further goals, but he could not delay the inevitable for long.
Three minutes before the break, Ricardo Pereira lunged in on Raheem Sterling inside the box and, after Mike Dean pointed to the spot, Ilkay Gundogan fired his penalty into the bottom corner.
Things continued in a similar pattern after half-time, with De Bruyne running the show and Leicester clinging on - knowing that while they were only one goal down they had a chance.
Mahrez and De Bruyne, who had hit the post when the score was 0-0, were unable to convert golden chances to finish the Foxes off but, fittingly, it was the Belgian who helped make the points safe with his 13th assist of the season.
He burst into the box with an unstoppable run down the right and squared for Gabriel Jesus to slide home his side's third goal at the far post.
De Bruyne departed, exhausted, to a standing ovation just before the end and was given a huge hug by his manager, both of which were fully deserved.
Guardiola approach is vindicated
The way Manchester City lost the derby earlier this month might have made some managers adopt a more conservative approach against a side with Vardy in their ranks - not Guardiola, however.
He continued to send his full-backs forward and leave centre-halves Nicolas Otamendi and Fernandinho to deal with the Leicester striker on his own - despite neither ever looking much like beating him in a straight foot race.
Guardiola's approach was fully vindicated too, with his side not only dominating possession and playing slick passing football in the Foxes' half but also creating many more chances than their opponents and ultimately outscoring them.
True, Leicester did threaten on a couple of other occasions, and went very close to an equaliser with the score at 2-1 when Barnes could not convert a Vardy cross.
But that was a risk Guardiola was willing to take with his focus on attack. Their hopes of defending their title are out of their hands now but, when his side play like this, few teams can live with them.
If the departure of Guardiola's assistant Mikel Arteta to become Arsenal's new manager disrupted Manchester City's week, then they did not show it here.
Will Leicester lack belief against Liverpool?
With Liverpool heading to King Power Stadium on Thursday, this week was always going to define the direction of Leicester's season - and this was obviously not the start they would have wanted.
Rodgers' gameplan of conceding territory and possession was understandable given the weapons his side have but, with Manchester City on their game, giving them so much of the ball was asking for trouble.
Just as they did when they went to Anfield in October, Leicester made life difficult for their hosts, but created little and ended up leaving empty-handed.
The scoreline would have been more damaging if not for the performance of Schmeichel, who made a series of fine stops against his former club - the pick of the bunch coming when he clawed away a fierce Mahrez strike.
Leicester's title challenge is far from over with this defeat - a win over the leaders would quickly regain some of the momentum they lost here and in their home draw with Norwich last weekend.
But aside from a positive result, what they really needed going into their showdown with the only team above them in the table was a performance to give them belief they can live with the very best. Being outclassed by Manchester City is unlikely to provide them with much of that.
"When the season started, no-one expected us to be there," said Rodgers.
"There was a flash-up yesterday [on TV] about the title race and the top four. There were six players on the screen and not one of ours were there. Obviously we are not thought of as a team who can challenge for the top four, or the top six for that matter.
"We are learning. If you had asked me in August when we started 'would you take second in the league and the semi-final of the first cup competition?', we would have taken it and there is still so much for us to improve on."
Man of the match - Kevin de Bruyne
Match stats - Mahrez joins Joachim and Heskey club
- Manchester City have won 250 Premier League games in the 2010s, becoming just the second side to win that many in a decade (Manchester United won 255 games in the 2000s).
- Leicester conceded three goals in a Premier League game for the first time since February (4-1 against Crystal Palace). The Foxes had not conceded more than twice in any of their last 28 Premier League games.
- Kevin de Bruyne became the first player to register double figures for assists before Christmas in a single Premier League campaign since Arsenal's Mesut Ozil in 2015-16 (15).
- Since his Premier League debut in March 2012, Raheem Sterling has won more penalties than any other player in the competition (17).
- Riyad Mahrez became the fifth player to have played for Leicester in the Premier League and then score against the Foxes in the competition, after Julian Joachim, Emile Heskey, Chris Wood and N'Golo Kante.
- Mahrez had 10 shots in this match, the most by a player in a single Premier League game since Andre Schurrle against Burnley in August 2018 (11).
- His leveller for Manchester City was the 500th Premier League goal scored this season. It is the earliest date the milestone has been reached in a single campaign in the competition since 2009-10 (19 December).
- Since his maiden Premier League campaign in 2014-15, Leicester's Jamie Vardy is the competition's top or joint-top scorer against both Liverpool (7) and Manchester City (5), while he is also the second or joint-second highest scorer against Arsenal (9) and Tottenham Hotspur (5).
- Gabriel Jesus netted his first goal in 12 home games for Manchester City in all competitions, since netting against Schalke in March. Each of his last 14 goals for the club before today had been scored away from the Etihad.
Leicester host Liverpool on Thursday (20:00 GMT). Manchester City travel to Wolves on Friday (19:45).
- 8GündoganBooked at 71minsSubstituted forRodriat 79'minutes
- 20Bernardo Silva
- 17De BruyneBooked at 59minsSubstituted forAgüeroat 90+1'minutes
- 7SterlingSubstituted forFodenat 89'minutes
- 9Gabriel Jesus
- 21Ricardo Pereira
- 4SöyüncüBooked at 35mins
- 25NdidiBooked at 51mins
- 17PérezSubstituted forGrayat 68'minutes
- 8TielemansSubstituted forPraetat 77'minutes
- 15BarnesSubstituted forAlbrightonat 64'minutes
- Mike Dean
- Shots on Target
Second Half ends, Manchester City 3, Leicester City 1.
Substitution, Manchester City. Sergio Agüero replaces Kevin De Bruyne because of an injury.
Substitution, Manchester City. Phil Foden replaces Raheem Sterling.
Attempt saved. Gabriel Jesus (Manchester City) right footed shot from a difficult angle on the right is saved in the bottom left corner. Assisted by Riyad Mahrez.
Attempt blocked. Riyad Mahrez (Manchester City) left footed shot from the right side of the box is blocked. Assisted by Kevin De Bruyne.
Substitution, Manchester City. Rodrigo replaces Ilkay Gündogan because of an injury.
Substitution, Leicester City. Dennis Praet replaces Youri Tielemans.
Corner, Manchester City. Conceded by Kasper Schmeichel.
Attempt saved. Kevin De Bruyne (Manchester City) left footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Benjamin Mendy.
Attempt missed. Nicolás Otamendi (Manchester City) header from very close range is just a bit too high. Assisted by Kevin De Bruyne with a cross following a corner.
Corner, Manchester City. Conceded by Çaglar Söyüncü.
Attempt blocked. Riyad Mahrez (Manchester City) left footed shot from outside the box is blocked. Assisted by Ilkay Gündogan.
Foul by Raheem Sterling (Manchester City).
Ricardo Pereira (Leicester City) wins a free kick in the defensive half.
Ilkay Gündogan (Manchester City) is shown the yellow card for a bad foul.
Hand ball by James Maddison (Leicester City).
Goal! Manchester City 3, Leicester City 1. Gabriel Jesus (Manchester City) left footed shot from the left side of the six yard box to the bottom left corner. Assisted by Kevin De Bruyne.
Substitution, Leicester City. Demarai Gray replaces Ayoze Pérez.
Attempt missed. Ayoze Pérez (Leicester City) right footed shot from outside the box is high and wide to the right. Assisted by Youri Tielemans.