Chelsea concede last-minute goal to dent Champions League hopes
West Ham bagged a last-gasp winner to secure a 3-2 victory which has dented Chelsea's hopes of a Champions League qualification spot on Wednesday at the London Stadium.
Willian bagged a brace for the Blues, one from the penalty spot in the first-half and then a free-kick in the 72nd minute.
But West Ham weren't going down without a fight and despite having a goal chalked off for offside, Tomáš Souček scored a header in first-half stoppage time, while Michail Antonio did give the hosts the lead in the second-half after tapping in from close range.
West Ham won it with one minute to go on the counter-attack as Andriy Yarmolenko found the far corner leaving Kepa with no chance.
Frank Lampard brought Tammy Abraham and Mateo Kovacic back into the Premier League side, while Christian Pulisic and Andreas Christensen were deemed fit enough to start.
Chelsea as expected dominated proceedings from the early exchanges but it was the hosts who had the first big chance of the game. Michail Antonio held off Antonio Rudiger but dragged his effort wide of Kepa's goal.
Lampard's side had plenty of the ball and in the 20th minute Christian Pulisic should have put Chelsea ahead. Abraham dummied the ball but the American couldn't curl his effort on target.
Tomáš Souček thought he put West Ham ahead after bundling the ball home but VAR was called upon and after minutes of deliberation, it was ruled out in controversial fashion.
But it was Chelsea who took the lead, and from the penalty spot. Christian Pulisic drawed a foul in the box and Willian fired the Blues ahead three minutes before the break.
The first-half wasn't over yet though and in stoppage time, David Moyes' side got their equaliser. Another set-piece and it was Souček again who met the delivery and steered the Hammers into the break level.
West Ham started the second-half the better side, looked hungrier and they got their rewards. Six minutes into the half, Jarrod Bowen squared it across the box and Antonio smashed it in from close range to give the Hammers the lead for the first time.
Manuel Lanzini had a great chance shortly after to extend their advantage but he, like Pulisic in the first-half, could only fire his effort over the bar.
Christian Pulisic has looked Chelsea's brightest spark since the Premier League restart and he was fouled by Declan Rice on the edge of the box in the just after the 70th minute. Willian, already a scorer of one set-piece, stepped up and struck a fine effort into the far corner to level the game up with 18 minutes to go.
Pulisic's star performance continued and he nearly had a goal for his efforts but his right-footed effort from the edge of the box flied just past the outside of the post.
It was the Hammers though who sealed the three points in the 89th minute. The hosts broke and Antonio played in Yarmolenko, and he cooly cut in and dispatched to hand Moyes' side a 3-2 victory.
It was too little too late for Lampard's side and they failed to capitalise on Leicester's defeat to Everton.
Chelsea's spot in the top-four is now closed to two points with six games to play.