Leighton Baines scored two free-kicks as Everton twice came from behind to win at 10-man West Ham and remain the Premier League's only unbeaten team.
Ravel Morrison put the hosts ahead but Everton brought on Romelu Lukaku at the break and that helped turn the match.
After Baines fired across Jussi Jaaskelainen to equalise, Mark Noble restored West Ham's lead from the penalty spot, but was then sent off.
Baines curled home his second to level and Lukaku headed the winner.
Everton secured a fine and rise to fifth with this result, which was a reward for their superb second-half display.
West Ham drop to 14th having still not won since the but there were encouraging signs as they ended a three-match goal drought.
The opening half-hour was high in quality but low in chances - Jaaskelainen reacted well to stop a Kevin Mirallas drive but that was Everton's only attempt in the first 45 minutes.
West Ham pursued the likes of Jermain Defoe, Loic Remy, Lukaku and Demba Ba during the summer, and it was easy to see why as Modibo Maiga struggled to make an impact in the lone striker role.
However, they looked more the likely to break through and did just that when Matt Jarvis surged inside from the left and found Morrison, whose effort from just outside the area flew in off Phil Jagielka.
Roberto Martinez signalled his intent at half-time by replacing Steven Naismith and Nikica Jelavic with Lukaku and James McCarthy, and the response was instant as Lukaku released Mirallas to round Jaaskelainen, only to see his low cross scrambled away.
A final substitution was enforced on the Toffees when Leon Osman limped off, but their play continued to improve and Mirallas narrowly failed to convert a Baines cross following a period of intense pressure.
With West Ham barely able to escape their own territory, James Collins fouled Barkley and Baines beat Jaaskelainen with a sublime set-piece.
Hammers boss Sam Allardyce decided to meet fire with fire by introducing two strikers in Mladen Petric and Ricardo Vaz Te, and it paid off when Nolan drew a foul from McCarthy after superb work from Petric - Noble dispatched the penalty.
But the momentum took a decisive shift after Noble was given a second booking for a challenge on Everton midfielder Barkley 18 yards out. This time Baines picked the opposite corner with another stunning free-kick.
With Lukaku causing West Ham no shortage of problems Everton went in search of a winner, and it arrived when the Belgium international started a move before finishing it with an emphatic header from Mirallas's centre.
Everton manager Roberto Martinez:
"We knew we were going to be tested, we knew we had to defend our box well and be strong in dead-ball situations. We started brightly and should have scored, but then West Ham stopped us from playing.
"They imposed themselves on the game. Last week's result took a bit of energy out of a few individuals, but the strength in our squad is very encouraging.
"To score three goals with the individual quality Leighton and Romelu showed is very, very pleasing.
"I'm delighted with the attitude and mentality we have showed in every performance this season. I'm proud at being unbeaten so far - now we need to work even harder to become better and make sure we keep improving."
West Ham manager Sam Allardyce on Mark Noble's second yellow card for a tackle on Ross Barkley:
"It is always easy to look at the situation on my laptop afterwards and say Mark played the ball first. Unfortunately for us, the referee didn't see it that way and, to make things worse, Leighton Baines has then fired an unstoppable free-kick right into the top corner.
"With our defensive ability, I thought we would see it out at 2-1 but it is really frustrating for us that, not only was Mark sent off but we were punished again by them putting ball in the net straight after we went ahead."