West Ham roared back from 2-0 down to grab all three points against Everton at Goodison Park on Saturday afternoon.
Romelu Lukaku opened the scoring with a precise finish early in the first half, before Kevin Mirallas' sending off meant that the home side faced an hour of play with 10 men. Aaron Lennon's second-half strike gave Everton something of a cushion, but a missed penalty from Lukaku changed the momentum of the match - Michael Antonio and Diafra Sakho heading the Hammers level late on before Dimitri Payet's winner.
The home side went into the game with a tweaked formation, using John Stones in a back three alongside Ramiro Funes Mori and Phil Jagielka. The experiment appeared to work, with Bryan Oviedo and Seamus Coleman free to fly down the wings in attack, but Stones was taken off at halftime for Mo Besic's steel in midfield.
West Ham lined up in a similar formation, bringing in youngster Reece Oxford for his first league start since being taken off at half-time against Leicester in August. His return saw him tormented by Lukaku, the Belgian striker holding him off to fire home the first goal, before being replaced at the break once again.
Mirallas' sending off provided some hope for the Hammers, first picking up a booking for a dive and getting a deserved second yellow for a brainless lunge on Aaron Cresswell. West Ham failed to capitalise immediately though, and Lennon linked up well with Lukaku to double the lead in the second half.
Lukaku spurned a chance to finish the game from the penalty spot after Besic was adjudged to have been fouled in the box, Adrian beating away the poor spot kick. It wasn't long until Antonio nodded home Mark Noble's ball into the box, with Everton legs tiring - and Sakho almost immediately headed in a second from Payet's cross.
The game opened up as both sides flew forward for a winner, but it was West Ham's man of the season Payet who grabbed the winner after Sakho returned the favour to tee him up and break Everton hearts.
The Hammers' late comeback stalls something of a quiet turnaround in fortunes for Everton over the last couple of months. After a run of just a single victory in 10 Premier League games, a Capital One Cup win over Carlisle was the catalyst for a run of five wins in six games in all competitions - including four clean sheets.
The Hammers, though, secure their spot in the race for a top-four spot in the Premier League, with their fightback continuing the momentum being built up by 1-0 wins over Sunderland and Tottenham. The chasing pack fell further behind - Chelsea, Stoke and Southampton all dropping points - with Manchester United not playing until Sunday.
Everton: Robles, Coleman, Stones, Jagielka, Funes Mori, Oviedo, Barkley, McCarthy, Mirallas, Lennon, Lukaku.
Subs: Baines, Niasse, Besic, Barry, Deulofeu, Osman, Howard.
West Ham: Adrian, Oxford, Kouyaté, Ogbonna, Cresswell, Noble, Obiang, Lanzini, Antonio, Payet, Emenike.
Subs: Randolph, Song, Carroll, Sakho, Henry, Hendrie, Dobson.
For more from Chris when he's not writing on 90min, follow him on Twitter at @ThatChris1209!