West Ham scored three goals in the final 12 minutes to come from 2-0 down and secure a thrilling win against Everton at Goodison Park.
Romelu Lukaku and Aaron Lennon had seemingly put Everton on course for victory but before one of the most stunning comebacks of the season so far.
Michail Antonio and Diafra Sakho brought the Hammers level before Dimitri Payet pounced in stoppage time to secure all three points for Slaven Bilic’s side.
It was a sickening result for Everton who spent much of the game with 10 men after Kevin Mirallas was sent off in the first half and also missed a penalty when 2-0 ahead.
The afternoon started brightly for the Toffees when top-scorer Lukaku rolled his marker Reece Oxford and fired into the corner for his 18th league goal of the season.
The game tipped back into the visitors favour though when Mirallas was shown a second yellow card for a crude challenge on Aaron Cresswell, the Belgian had earlier been booked for diving.
Everton doubled their advantage nine minutes into the second half when Lukaku’s neat flick found the overlapping Lennon who lifted the ball beyond Adrian.
Everton should have put the game beyond doubt when substitute Muhamed Besic was fouled in the area but Lukaku’s weak penalty was easily saved by Hammer’s ‘keeper Adrian.
The Belgian was made to regret that miss when Antonio headed home Mark Noble’s cross with 12 minutes left.
Three minutes later Payet’s right wing cross was headed beyond Joel Robles by Sakho for his first goal since September.
There was still time for a further twist when another substitute Andy Carroll nodded the ball down into the box for Payet to slide home from close range and the send the visiting supporters into delirium.
The victory moves West Ham above Man Utd into fifth place just one point from fourth-placed Man City and within a real chance of Champions League qualification.
Everton, distraught at the final whistle, remain 11th after their seventh home league defeat of the season.