Cole Palmer's stoppage-time penalty denied former club Manchester City victory in a thriller against Chelsea at Stamford Bridge.
In a game of the highest quality in treacherous conditions, fortunes swung both ways.
City thought they had the three points when Rodri's shot from the edge of the area touched off Thiago Silva past Chelsea keeper Robert Sanchez with four minutes left.
Chelsea, showing superb resilience, were not to be denied and Palmer - a £40m summer signing from Pep Guardiola's side - stayed cool amid the mayhem to beat Ederson from the spot to leave City just a point clear of Liverpool at the Premier League summit.
The reigning champions led in contentious fashion after 25 minutes when they were awarded a penalty for Marc Cucurella's pull on Erling Haaland, despite Chelsea's protests that the full-back had been fouled first.
Haaland dispatched the penalty with ease, but the hosts were level four minutes later when Brazil centre-back Silva glanced home Conor Gallagher's corner at the near post.
Chelsea turned the game around when Raheem Sterling also scored against his former club after 37 minutes, turning in Reece James' cross after Josko Gvardiol's mistake.
City, though, levelled on the stroke of half-time when the unmarked Manuel Akanji headed in Bernardo Silva's cross.
Two minutes after the break City went in front again when Haaland scrambled in Julian Alvarez's cross at the far post.
Yet Chelsea again battled back and deservedly drew level in the 67th minute when Nicolas Jackson pounced after Ederson pushed out Gallagher's low drive.
Guardiola's side thought they had won it with Rodri's stroke of good fortune - until the late penalty drama capped an entertaining, eventful encounter.
Defender Ruben Dias was penalised for a foul on Chelsea substitute Armando Broja and Palmer's calm finish left honours even.
More to follow.
Follow Chelsea v Manchester City, plus reaction and analysis to Sunday's other Premier League gamesHow did you rate Chelsea's performance? Have your say hereWhat did you make of Man City's display? Send us your views herePlayer of the match
PalmerCole Palmer
with an average of 8.21
Chelsea
Squad number20Player namePalmer
Squad number7Player nameSterling
Squad number23Player nameGallagher
Squad number6Player nameThiago Silva
Squad number24Player nameJames
Squad number15Player nameJackson
Squad number19Player nameBroja
Squad number1Player nameSánchez
Squad number2Player nameDisasi
Squad number8Player nameFernández
Squad number27Player nameGusto
Squad number10Player nameMudryk
Squad number3Player nameCucurella
Squad number25Player nameCaicedo
Squad number16Player nameUgochukwu
Manchester City
Squad number9Player nameHaaland
Squad number47Player nameFoden
Squad number16Player nameRodri
Squad number20Player nameBernardo Silva
Squad number25Player nameAkanji
Squad number19Player nameÁlvarez
Squad number11Player nameDoku
Squad number2Player nameWalker
Squad number31Player nameEderson
Squad number8Player nameKovacic
Squad number10Player nameGrealish
Squad number24Player nameGvardiol
Squad number3Player nameRúben Dias
Line-ups
Chelsea
Formation 4-2-3-1
1Sánchez24JamesSubstituted forGustoat 64'minutes2Disasi6Thiago Silva3CucurellaBooked at 22mins25CaicedoBooked at 60minsSubstituted forBrojaat 90'minutes8FernándezSubstituted forMudrykat 64'minutes20PalmerBooked at 23mins23Gallagher7SterlingBooked at 90mins15JacksonBooked at 90minsSubstituted forUgochukwuat 90+6'minutesSubstitutes
5Badiashile10Mudryk11Madueke16Ugochukwu19Broja27Gusto28Petrovic29Maatsen52MatosMan City
Formation 3-2-4-1
31Ederson2Walker24Gvardiol3Rúben Dias19ÁlvarezSubstituted forKovacicat 79'minutes20Bernardo Silva25Akanji16RodriBooked at 72mins11DokuBooked at 56minsSubstituted forGrealishat 59'minutesBooked at 90mins47Foden9HaalandSubstitutes
4Phillips8Kovacic10Grealish18Ortega27Nunes33Carson52Bobb82LewisReferee:Anthony Taylor
Attendance:39,532
Live Text
Match ends, Chelsea 4, Manchester City 4.
Second Half ends, Chelsea 4, Manchester City 4.
Attempt missed. Kyle Walker (Manchester City) right footed shot from outside the box is too high from a direct free kick.
Raheem Sterling (Chelsea) is shown the yellow card for a bad foul.
Phil Foden (Manchester City) wins a free kick in the attacking half.
Foul by Raheem Sterling (Chelsea).
Substitution, Chelsea. Lesley Ugochukwu replaces Nicolas Jackson.
Goal! Chelsea 4, Manchester City 4. Cole Palmer (Chelsea) converts the penalty with a left footed shot to the top left corner.
Jack Grealish (Manchester City) is shown the yellow card.
Nicolas Jackson (Chelsea) is shown the yellow card.
Penalty conceded by Rúben Dias (Manchester City) after a foul in the penalty area.
Penalty Chelsea. Armando Broja draws a foul in the penalty area.
Jack Grealish (Manchester City) wins a free kick on the left wing.
Foul by Conor Gallagher (Chelsea).
Foul by Erling Haaland (Manchester City).
Thiago Silva (Chelsea) wins a free kick in the defensive half.
Foul by Erling Haaland (Manchester City).
Conor Gallagher (Chelsea) wins a free kick in the defensive half.
Substitution, Chelsea. Armando Broja replaces Moisés Caicedo.
Jack Grealish (Manchester City) wins a free kick in the defensive half.