Arthur Masuaku scored a late winner as West Ham fought back to beat Premier League leaders Chelsea 3-2 in a thrilling London derby.

Thiago Silva's header put the European champions in front at the London Stadium, but Manuel Lanzini thumped a penalty home in the 40th minute to level following mistakes from Jorginho and Edouard Mendy.

Mason Mount's magnificent volley at the end of the first half put Chelsea back in the lead, but Jarrod Bowen curled in a superb low strike to pull the Hammers level once again.

The Blues - bolstered by Romelu Lukaku's presence off the bench at half-time - pressed for a winner, but slumped to their second top-flight defeat of the season after Masuaku's cross caught Mendy out at his near post with three minutes of normal time remaining.

Silva opened the scoring in the 28th minute after a cagey start to the game, Lukas Fabianski getting fingertips to the Chelsea defender's downward header from Mount's corner, but failing to keep it out when he should have done better.

The Brazilian followed up with a goal-saving block off the line just two minutes later, getting into the perfect position to prevent Vladimir Coufal's fizzing low drive from finding the bottom corner with Mendy beaten.

West Ham equalised against the run of play, however, as Jorginho's poor back pass played Mendy into trouble and the goalkeeper was caught in possession by Bowen before bringing the Hammers forward down and conceding a penalty that Lanzini whipped emphatically into the top-left corner.

Mount then put Chelsea back into the lead just before the break with a fantastic volley, arrowed into the bottom-right corner from a floated Hakim Ziyech ball.

The Hammers got back on level terms again 11 minutes into the second half, when Bowen cut onto his left foot on the edge of the box and rifled a shot into the bottom-left corner.

Bowen spurned a glorious chance in the 75th minute, but West Ham snatched all three points when first-half substitute Masuaku's cross from the left sneaked inside the near post beyond Mendy despairing dive.