Manchester City dropped to third in the Premier League as Leicester City made it back-to-back defeats for Pep Guardiola's men - Ricardo Pereira's spectacular 81st-minute strike securing a 2-1 triumph.
As in their weekend defeat to Crystal Palace, Manchester City took a first-half lead but were quickly pegged back - Bernardo Silva's goal cancelled out by Marc Albrighton, who also equalised when the sides met in the EFL Cup quarter-finals last week.
A 1-1 draw on that occasion ended with a victory for Manchester City on penalties but Leicester prevailed this time, with hero Pereira on the receiving end of a rash challenge that saw Fabian Delph sent off in the closing minutes.
Such a turnaround appeared unlikely when Aymeric Laporte fizzed a 14th-minute pass into Sergio Aguero's feet and the Argentina striker played in Silva for a neat finish.
The lead lasted only five minutes, though, as referee Mike Dean waved away claims for a foul against Danilo and Leicester made the most of an undermanned defence – Jamie Vardy crossing for Albrighton to head in at the far post.
Aguero almost restored the visitors' advantage following excellent work from Kevin De Bruyne and Leroy Sane, though they needed a trio of saves from Ederson to deny Vardy, James Maddison and Hamza Choudhury before half-time.
Manchester City resumed after the break in similarly ragged fashion but began to turn the screw after the hour, with Sane unable to scramble home after Raheem Sterling sent Aguero to the byline inside the box.
Leicester attacks had started to dry up, although Laporte needed an inch-perfect tackle to thwart the ever-alert Vardy.
Pereira's opening was nowhere near as enticing but he struck a beautifully clinical blow from the edge of the box when Sane could only partially clear a corner.
Guardiola's Christmas nightmare was compounded when Sane lashed a chance to equalise over and Delph lost control.
What does it mean? Champions losing touch with Liverpool
A two-point advantage earlier this month is now a considerable deficit and Manchester City, so imperious for most of 2018, have faltered at an untimely moment, leaving them with a mountain to climb in the title race. Liverpool's trip to the Etihad Stadium on January 3 is now a must-win encounter. Leicester climb to seventh and this result, on the back of a 1-0 win at Chelsea, will do much to quell murmurs of discontent around manager Claude Puel.
Pereira crowns brilliant display with show-stopping strike
The former Porto defender's game-settling strike was a moment to savour, further enhancing his overall performance. Pereira's duel with Sane was absorbing throughout and he looked to drive forward from full-back at every opportunity.
Sterling fails to shine
So often a decisive star in big moments for Manchester City over the past 18 months, England forward Sterling was hampered by poor decision-making, heavy passes and an uncertain touch in an outing to forget.
Key Opta Facts
- This is the first time Manchester City have lost consecutive Premier League games since December 2016, with the second defeat in that run also coming away at Leicester.
- Leicester have won their last two Premier League games against 'big six' opposition, as many as they had managed in their previous 19 in the competition (W2 D2 L15).
- Manchester City have conceded a goal from their first shot faced in three of their last four league matches (Chelsea, Crystal Palace and Leicester).
- Of Pep Guardiola's 11 Premier League defeats, six have come in the month of December.
- Bernardo Silva has had a hand in nine goals in his 18 Premier League appearances this season (5 goals, 4 assists) - just one fewer than in his 35 games in the competition last term (6 goals, 4 assists).
- With Ricardo Pereira scoring for Leicester and Bernardo Silva netting for Manchester City, this was the first time a Premier League match saw a Portuguese player score for both sides.