Jarrod Bowen won West Ham's penalty late in the first half before curling into the far corner from the edge of the box in the second
Arthur Masuaku scored a bizarre late winner as top-four hopefuls West Ham twice came from behind to beat Premier League leaders Chelsea in a pulsating encounter at London Stadium.
After collecting the ball wide on the left, Masuaku arrowed a cross-cum-shot past Chelsea goalkeeper Edouard Mendy at his near post to send the Hammers supporters into ecstasy.
Thiago Silva broke the deadlock for Chelsea in the first half, heading Mason Mount's corner past Lukasz Fabianski via the inside of the post.
West Ham were gifted a chance to equalise when Edouard Mendy brought down Jarrod Bowen following a poor backpass from Jorginho, allowing Manuel Lanzini to stroke home from the penalty spot.
Bowen's low drive from the edge of the area restored parity once more before Masuaku's remarkable 87th-minute winner.
The win consolidates West Ham's place in the top four, while Chelsea will drop to third if Manchester City and Liverpool win this weekend.
More to follow.
- Reaction to West Ham's win over Chelsea, plus the rest of Saturday's Premier League matchesGo straight to all the best West Ham contentVisit our Chelsea page
Player of the match
with an average of 8.57
- West HamWest Ham UnitedWest Ham UnitedChelseaChelseaChelsea
West Ham UnitedAvgSquad number20Player nameBowenAverage rating
Squad number41Player nameRiceAverage rating
Squad number26Player nameMasuakuAverage rating
Squad number10Player nameLanziniAverage rating
Squad number28Player nameSoucekAverage rating
Squad number9Player nameAntonioAverage rating
Squad number5Player nameCoufalAverage rating
Squad number4Player nameZoumaAverage rating
Squad number8Player nameFornalsAverage rating
Squad number22Player nameBenrahmaAverage rating
Squad number23Player nameDiopAverage rating
Squad number15Player nameDawsonAverage rating
Squad number31Player nameJohnsonAverage rating
Squad number1Player nameFabianskiAverage rating
ChelseaAvgSquad number19Player nameMountAverage rating
Squad number6Player nameThiago SilvaAverage rating
Squad number24Player nameJamesAverage rating
Squad number2Player nameRüdigerAverage rating
Squad number12Player nameLoftus-CheekAverage rating
Squad number29Player nameHavertzAverage rating
Squad number22Player nameZiyechAverage rating
Squad number4Player nameChristensenAverage rating
Squad number3Player nameAlonsoAverage rating
Squad number20Player nameHudson-OdoiAverage rating
Squad number5Player nameJorginhoAverage rating
Squad number16Player nameMendyAverage rating
Squad number10Player namePulisicAverage rating
Squad number9Player nameLukakuAverage rating
- Line-upsMatch StatsLive Text
- 1Fabianski15Dawson4ZoumaSubstituted forFornalsat 71'minutes23Diop5CoufalBooked at 90mins28Soucek41Rice31JohnsonSubstituted forMasuakuat 45+2'minutes20Bowen10LanziniSubstituted forBenrahmaat 85'minutes9Antonio
- 16Mendy4ChristensenBooked at 90mins6Thiago Silva2Rüdiger24JamesBooked at 90mins12Loftus-Cheek5JorginhoBooked at 23mins3AlonsoSubstituted forPulisicat 72'minutes22ZiyechSubstituted forHudson-Odoiat 64'minutes19Mount29HavertzSubstituted forLukakuat 45'minutes
Referee:Andre MarrinerMatch StatsHome TeamWest HamAway TeamChelseaPossessionHome36%Away64%ShotsHome11Away19Shots on TargetHome5Away7CornersHome1Away9FoulsHome10Away10Live TextPost update
Match ends, West Ham United 3, Chelsea 2.
Second Half ends, West Ham United 3, Chelsea 2.
Andreas Christensen (Chelsea) is shown the yellow card for a bad foul.
Foul by Andreas Christensen (Chelsea).
Michail Antonio (West Ham United) wins a free kick on the left wing.
Attempt missed. Christian Pulisic (Chelsea) header from the centre of the box misses to the left. Assisted by Mason Mount with a cross.
Reece James (Chelsea) is shown the yellow card for a bad foul.
Foul by Reece James (Chelsea).
Tomas Soucek (West Ham United) wins a free kick in the defensive half.
Vladimir Coufal (West Ham United) is shown the yellow card for a bad foul.
Callum Hudson-Odoi (Chelsea) wins a free kick on the left wing.
Foul by Vladimir Coufal (West Ham United).
Foul by Ruben Loftus-Cheek (Chelsea).
Saïd Benrahma (West Ham United) wins a free kick on the left wing.
Attempt missed. Jarrod Bowen (West Ham United) left footed shot from the right side of the box is too high. Assisted by Michail Antonio.
Goal! West Ham United 3, Chelsea 2. Arthur Masuaku (West Ham United) left footed shot from a difficult angle and long range on the left to the top left corner. Assisted by Michail Antonio with a headed pass.
Substitution, West Ham United. Saïd Benrahma replaces Manuel Lanzini.
Attempt missed. Romelu Lukaku (Chelsea) header from the centre of the box is just a bit too high. Assisted by Antonio Rüdiger with a cross.
Attempt blocked. Ruben Loftus-Cheek (Chelsea) header from the centre of the box is blocked. Assisted by Mason Mount with a cross.
Corner, Chelsea. Conceded by Issa Diop.
Page 1 of 5rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
- Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment