Manchester City must wait to be crowned Premier League champions after Sergio Aguero's panenka blunder came back to haunt him in a 2-1 defeat to Chelsea at the Etihad Stadium.
The first half-hour passed with very few chances falling for either side. Raheem Sterling tested Edouard Mendy from distance and Timo Werner did flick the ball home, only for the flag to go up for offside.
The Cityzens broke the deadlock on the stroke of half-time when Gabriel Jesus pounced on an Andreas Christensen slip, before slipping the ball square for Raheem Sterling to slide home via a poor Aguero touch.
City were then handed a huge chance to double their lead from the spot, but Aguero humiliatingly chipped the ball down the middle of the goal - where Mendy was waiting to catch with embarrassing ease.
Chelsea attempted to stage a fightback in the second half, and were rewarded for their endeavours when Hakim Ziyech ruthlessly rifled into the corner. Werner and Callum Hudson-Odoi then had efforts chalked off for offside, before Marcos Alonso scuffed home in injury-time past a despairing Ederson - handing the visitors all three points while forcing City to wait even longer for their title coronation.
RIght, let's get on with the player ratings.
Man City player ratings
1. Goalkeeper & Defenders
Ederson (GK) - 6/10 - Few saves to make in a relatively routine first half but could he have done better with Ziyech's finish? Perhaps a touch harsh. Beaten by the weirdness of Alonso's bounced finish.
Ruben Dias (CB) - 7/10 - Looked to pass out down the right flank, getting Man City moving up the pitch. Couldn't stop Chelsea from sneaking it at the end.
Aymeric Laporte (CB) - 6/10 - Such a good defender, it's crazy to think he's sat on the bench so often this season. Rarely put a foot wrong, and dealt well with the pace and direct running of Werner.
Nathan Ake (CB) - 5/10 - Flicked a header just over the bar on his rare start. Allowed a few gaps to appear on his side, although he did have to cover for Benjamin Mendy and the Frenchman's lapses in concentration. Torn apart by Werner in the closing stages.
2. Wing-Backs & Midfielders
Joao Cancelo (RWB) - 7/10 - Stepped inside to bolster the midfield, but also hugged the touchline to ping in crosses when on the attack. A superbly versatile player for Guardiola to mould.
Ferran Torres (AM) - 6/10 - A quiet game from the Spaniard. Never looked like really threatening the Chelsea defence, but that didn't stop him from putting in the hard yards.
Rodri (CM) - 6/10 - The only recognised midfielder in the starting lineup, so no pressure keeping the team nicely balanced, eh? Robbed in possession and allowed Chelsea to equalise with his momentary slip. Poor.
Raheem Sterling (AM) - 7/10 - Flew into a risky challenge on Werner but escaped with a yellow card. Opened the scoring thanks to a gift from Jesus, and could have won a penalty late on.
Benjamin Mendy (LWB) - 6/10 - Wasted a couple of crosses with a sledgehammer of a left foot, rather than the gentle touch they needed. Left for dead by James on more than one occasion.
Gabriel Jesus (ST) - 6/10 - Ran the channels in the first half and held up the ball well, turning back to bring in his flock of wide players. Never got into those scoring positions.
Sergio Aguero (ST) - 3/10 - Dear me. First, his shocking touch almost cost City their opener, but luckily Sterling was on hand to offer a reprieve. Then, he stepped up for the spot-kick, and chipped it straight into Mendy's arms. Embarrassing.
Phil Foden (AM) - 6/10
Ilkay Gundogan (CM) - 6/10
Oleksandar Zinchenko (LWB) - 6/10
5. Goalkeeper & Defenders
Edouard Mendy (GK) - 7/10 - No chance with the first, but taught Aguero a harsh lesson by reading his dinked penalty and getting to his feet to catch with ease.
Cesar Azpilicueta (CB) - 7/10 - Didn't enjoy his afternoon defending the pacy and tricky Sterling. Marauded up the pitch to supply the equaliser however, showing his prowess in wider areas.
Andreas Christensen (CB) - 6/10 - Put in a solid first half, until providing the costly slip to allow Man City to open their account for the afternoon. Had to be substituted as a result, picking up a muscle injury.
Antonio Rudiger (CB) - 7/10 - Had a pop at goal in the first half, but no dice. Didn't do badly against this relentless City attack.
6. Wing-Backs & Midfielders
Reece James (RWB) - 8/10 - Drove forward with the ball at his feet and always looked to overlap and drag a defender with him. Tidy on the ball.
Billy Gilmour (CM) - 7/10 - Didn't waste a rare start, playing the ball neatly and always checking his shoulder for any possible pressure. Unfortunate to concede the penalty, but got a reprieve from Aguero. Another convincing performance.
N'Golo Kante (CM) - 7/10 - The most efficient player on the pitch. Efficient in possession, in retaining possession, in being in the right place at the right time. Gave his team a solid 70 minutes.
Marcos Alonso (LWB) - 7/10 - Offered a more physical presence on the left, but the team lost that pace and energy which Chilwell provides. The unlikely hero at the end, scuffing a shot over Ederson to win the game. Madness.
Christian Pulisic (RW) - 6/10 - Nipped in front of the defenders and buzzed around, linking up with Werner and Ziyech. Not able to demonstrate his blistering pace as Chelsea struggled at times to make inroads.
Timo Werner (ST) - 7/10 - Limped away from a strong but fair Laporte challenge before firing home from an offside position. That was a familiar theme, as he was often slack in getting back in-line. Did set up the winner nicely.
Hakim Ziyech (LW) - 7/10 - Caressed some superb passes around the side of City's defence, allowing Werner to race in behind. Drilled home the equaliser with aplomb.
Kurt Zouma (CB) - 8/10 - Solid as rock after coming on for Christensen. Could have conceded a penalty for a clumsy late tackle on Sterling but deserved his luck.
Jorginho (CM) - 7/10
Callum Hudson-Odoi (LW) - 6/10