Second-half goals from Hakim Ziyech and Marcos Alonso saw Chelsea beat Manchester City 2-1 at the Etihad Stadium and delay the Premier League title celebrations of Pep Guardiola's side.
City could have sealed a seventh league title with a win over their Champions League final opponents but the Londoners' comeback means the league leaders will have to wait to secure the trophy.
Raheem Sterling's 44th-minute strike gave Guadiola's side an interval lead, though they could have been further ahead but Sergio Aguero's Paneka penalty in added-time was easily caught by Edouard Mendy.
That miss proved crucial as Chelsea fought back in the second half.
Ziyech equalised on 63 minutes, firing in a left-footed shot into the bottom corner of Ederson's net from the edge of the box, before Alonso finished off a low cross from Timo Werner to seal the turnaround in stoppage time.
Despite the frustrating result, it remains only a matter of time before City are crowned champions again and it could even happen on Sunday if second-placed Manchester United lose to Aston Villa.
In the wake of Tuesday's Champions League semi-final second leg win over Paris Saint-Germain, Guardiola made nine changes to his team and deployed a different formation.
Ederson and Ruben Dias were the only survivors with the latter being one of three centre-backs to play along with Aymeric Laporte and Nathan Ake.
Kevin De Bruyne did not even make the bench as the 'false nine' system was shelved for the time being with strikers Aguero and Gabriel Jesus both starting.
That meant Thomas Tuchel was unlikely to glean much if he was hoping for Champions League final clues, but the German himself made five changes to his Chelsea team.
As a result the game lacked intensity but City had the better of the opening exchanges with Ferran Torres shooting well over, Jesus having an effort blocked and Benjamin Mendy driving wide.
Chelsea's first opportunity came from a set-piece after Sterling was booked for a high challenge on Werner. Reece James fired the ball into the wall.
The game became cagey but there were further opportunities with Ake heading wide from a corner and Sterling shooting at Edouard Mendy after a rebound off N'Golo Kante.
Werner flicked the ball into the net for Chelsea but was flagged offside and later missed the target with a tame effort.
Ziyech connected with a better strike from distance but Ederson saved before Antonio Rudiger blasted over.
Drama followed in the closing two minutes of the opening half as first City took the lead through Sterling.
Jesus shrugged off the attention of Andreas Christensen - who was injured in the process - and burst into the area to square for the inrushing Aguero. The Argentinian spurned a great opportunity with a poor touch but it did not matter as Sterling was on hand to tuck home.
Aguero then missed an even greater chance moments later after Billy Gilmour clumsily bundled Jesus over to concede a penalty while Christensen was off the field.
City's record goalscorer stepped up but attempted a Panenka-style kick and saw Mendy save with ease.
The tide turned after the break with Ziyech firing another good effort straight at Ederson and Christian Pulisic clearing the crossbar.
The equaliser then came just after the hour. Rodri lost possession on the halfway line and the visitors pieced together a good move down the right.
It ended with Cesar Azpilicueta picking out Ziyech just outside the area and the Moroccan drilling a low shot into the bottom corner.
The finish was frantic with Chelsea having two goals disallowed before Sterling had a penalty appeal turned down and Alonso then grabbed a last-gasp winner.