Dimitri Payet scored a dramatic last-gasp winner as West Ham produced a marvellous comeback against 10-man Everton to claim a 3-2 Premier League win on Saturday and stay within a point of the Champions League places.
Romelu Lukaku opened the scoring in the 13th minute - continuing his 100 per cent goalscoring record in his eight league games against West Ham.
Despite seeing Kevin Mirallas sent off for a second bookable offence in the 35th minute, Everton went 2-0 up as Aaron Lennon finished off a fine move and Lukaku had the chance to put the game to bed from the penalty spot.
But his failure to convert from 12 yards turned the tide completely as West Ham rallied to clinch a thrilling win.
Michail Antonio headed in his third goal in as many games to give Slaven Bilic's side hope before Diafra Sakho's first goal since September levelled matters nine minutes from time.
And there was one last twist in the tale in the 90th minute as Payet pounced on some sloppy Everton defending to cap an unbelievable fightback.
Everton had gone 15 Premier Leagues unbeaten against West Ham prior to Saturday's game and Lukaku broke the deadlock with his 18th league goal of the season, gaining a yard on Reece Oxford before firing home via the post.
Adrian was called into action to prevent Ross Barkley from making it 2-0 in the 25th minute as the Spaniard produced a fine diving save to his left to keep out the midfielder's left-footed volley.
The game seemed to take a big swing in West Ham's favour when Mirallas, who had already been booked for simulation, received his second caution for a late and needless challenge on Aaron Cresswell.
West Ham would have capitalised on their numerical advantage three minutes before half-time if not for an excellent reaction save from Joel Robles to deny Emmanuel Emenike after the Nigeria forward had got on the end of an inviting left-wing cross from Cresswell.
Oxford was withdrawn in favour of Andy Carroll at the start of the second half and West Ham spurned another chance to level when Antonio headed wide from a Payet free-kick five minutes after the interval.
And the visitors were duly punished for their profligacy six minutes later courtesy of a brilliantly worked move between Lukaku and Lennon, who surged towards the box before collecting the Belgian's sublime return pass and coolly slotting the ball underneath Adrian.
Lukaku could not make Alex Song pay for a clumsy challenge on Muhamed Besic as his tame 69th-minute spot-kick was kept out by Adrian, who made a one-on-one save from the former Chelsea man shortly after.
A huge swing in momentum followed as Antonio turned home Mark Noble's cross in the 78th minute to give West Ham hope before Sakho equalised three minutes later, heading Payet's wonderful delivery into the bottom-left corner.
Sakho was involved as West Ham completed an unlikely turnaround, flicking Carroll's header into the path of Payet to roll the ball underneath the legs of Joel.
Key Opta stats:
- Romelu Lukaku is the first player in Premier League history to score in six consecutive games against an opponent for the same club.
- Mark Noble made his 250th Premier League appearance for West Ham United in this match; the first Hammer to reach this landmark in the competition.
- Kevin Mirallas has been given two red cards in 15 PL appearances this season, this after going 88 PL games without one before 2015-16.
- Since his debut, Adrian has saved twice as many penalties as any other goalkeeper in the Premier League (4). He's the fifth goalkeeper to save a penalty in the Premier League this season.
- Michail Antonio's goal was his first away from home this season, having netted 10 at home (four for Nottingham Forest, six for West Ham).
- West Ham recovered from two goals down to win a Premier League game for the first time since their 5-4 win over Bradford City in February 2000.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.