From the London Stadium - Arthur Masuaku's dramatic late winner inflicted a damaging defeat on league leaders Chelsea at the London Stadium on Saturday as West Ham produced a fine comeback.
It was an end-to-end first opening to the match, with Jarrod Bowen firing a shot just wide of the post after Thiago Silva gave the ball away, and Tomas Soucek failing to make the most of a free header for the hosts.
Craig Dawson should have done better when the ball broke to him from a corner, but he was unable to make a proper contact and his close-range effort was straight at Edouard Mendy.
Despite controlling possession, Chelsea had only mustered half-chances before Silva rose to meet Mason Mount's corner and headed the visitors into the lead - via Lukasz Fabianski's fingertips and a kiss of the post - on the half-hour mark.
The Brazilian veteran was the hero again for the Blues a minute later at the other end, blocking Vladimir Coufal's excellent effort on the line after the Czech had chested it down and fired beyond Edouard Mendy.
West Ham didn't have to wait long for the leveller. Jorginho sold Mendy horribly short with a back-pass, and having initially held off significant pressure from Bowen, the goalkeeper lost the ball and conspired to clattered into the Hammers forward to concede a penalty.
Manuel Lanzini stepped up to confidently dispatch the spot-kick.
However, Chelsea restored their lead on the stroke of half-time with a goal of real quality. Hakim Ziyech fired a pinpoint diagonal switch from the left, which Mount side-footed into the near post on the volley.
Ten minutes after the break David Moyes' men were on terms again as Bowen finished off a studded West Ham move with an excellent low finish into the bottom corner from the edge of the box.
Mount shot straight at Fabianski when he should have hit a corner from inside the area, before Bowen went close again on the stretch, but he could only divert Michail Antonio's cross wide.
Then, in the dying embers, West Ham won it. Substitute Masuaku's cross from the left somehow flew inside the near post, beating Mendy. Cue pandemonium in the stands.
The Irons held off Chelsea's pressure until the final whistle, even going close again themselves through live-wire Bowen in the final minute of normal time.
The result will likely see Chelsea knocked off top spot in the Premier League over the course of the weekend.
Here's how the players rated...
WEST HAM PLAYER RATINGS
1. Goalkeeper & defenders
Lukasz Fabianski (GK) - 6/10 - Got fingertips to Silva's header and probably shouldn't have been beaten by Mount at his near post.
Craig Dawson (CB) - 7/10 - Misfired from a good scoring chance. Typically solid otherwise.
Kurt Zouma (CB) - 7/10 - Shone against his former club, putting his body on the line at every opportunity. Eventually forced off injured.
Issa Diop (CB) - 6/10 - Sucked in, which gave Mount acres of space to time his volley.
2. Wing-backs & midfielders
Vladimir Coufal (RWB) - 8/10 - So close to making it 1-1, showing excellent technique. Simple assist for Bowen.
Tomas Soucek (CM) - 7/10 - Quieter than usual but worked hard to break up play.
Declan Rice (CM) - 8/10 - Looked imperious on the ball early on. Loose pass in the lead-up to Chelsea's second. Battled til the end, though.
Ben Johnson (LWB) - 6/10 - Unfortunate to be injured and subbed late in the first period after a good battle with James.
Jarrod Bowen (RF) - 9/10 - Perhaps should have done better after being gifted the ball by Silva. Tireless worker, caused Chelsea problems throughout.
Michail Antonio (ST) - 8/10 - Popped up on the left a few times, which caused Chelsea some issues. Worked so hard for the team without having his own chances.
Manuel Lanzini (LF) - 7/10 - Quiet until firing in the penalty. Didn't do much else before being subbed but job done.
Arthur Masuaku (LWB) - 8/10 - Put in a real shift defensively. Late cross somehow found its way into the net for the winner.
Pablo Fornals (LM) - 6/10
Said Benrahma (AM) - N/A
CHELSEA PLAYER RATINGS
5. Goalkeeper & defenders
Edouard Mendy (GK) - 5/10 - Sold short by a horrible pass from Jorginho before clattering Bowen and conceding a penalty. Perhaps didn't need to go in so rashly. Somehow caught out by Masuaku's bizarre late cross-shot and couldn't keep it out.
Andreas Christensen (CB) - 6/10 - Antonio seemed to be his direct opponent, but the Dane was up for the battle. Watchful throughout.
Thiago Silva (CB) - 8/10 - Somewhat fortunate not to be punished after giving the ball away early. Perfect downward header onto the post and in from Mount's corner. The hero again a minute later, blocking Coufal's goal-bound effort on the line.
Antonio Rudiger (CB) - 6/10 - Stayed touch tight to Bowen and always provided an out-ball going the other way. Made plenty of forward runs, as per. Static as Bowen fired in.
6. Wing-backs & midfielders
Reece James (RWB) - 6/10 - His starting position was often the halfway line. Some really dangerous deliveries in the first half. Unable to have the same offensive impact after the break.
Ruben Loftus-Cheek (CM) - 7/10 - Got through some important defensive work in the opening exchanges. Some good lung bursting runs, but to no avail.
Jorginho (CM) - 5/10 - Silly booking for dissent. Horrid, horrid hospital pass that led to the penalty.
Marcos Alonso (LWB) - 6/10 - Supported the attack well. Should have won the ball from Coufal in the build-up to Bowen's strike. Subbed.
Hakim Ziyech (RF) - 7/10 - Snatched at a couple of half-chances before the break. Wonderful, long diagonal ball to assist Mount for 2-1. Subbed.
Kai Havertz (CF) - 6/10 - Looked confident and dangerous, but hurt in a challenge on the stroke of half-time and had to be helped from the pitch. Another attacking injury for Tuchel.
Mason Mount (LF) - 8/10 - His corner was headed in by Silva. Buzzed about and got his reward just before half-time, volleying Ziyech's superb pass inside the near post.
Romelu Lukaku (ST) - 5/10 - Barely managed to get involved in truth.
Calllum Hudson-Odoi (LWB) - 6/10 - Looked a threat but couldn't create anything.
Christian Pulisic - (LF) - 5/10 - Quiet.