Newcastle secured a first win in 10 Premier League games and moved out of the relegation zone with a thrilling 3-2 victory at West Ham.
A loose pass from Henri Saivet gifted Marko Arnautovic (6) the opener for the hosts, though the Newcastle midfielder made amends just four minutes later from a free-kick.
After the break, Mo Diame fired Newcastle ahead (53) against his former side before Andre Ayew saw a contentious penalty saved by Rob Elliot three minutes later.
Christian Atsu then gave Newcastle some breathing space (61), and though Ayew hit back shortly after (69), the visitors held on to clinch a dramatic and much-needed victory at the London Stadium.
West Ham: Adrian (6), Zabaleta (5), Reid (6), Ogbonna (6), Cresswell (6), Masuaku (7), Kouyate (6), Obiang (6), Arnautovic (7), Ayew (7), Antonio (5)
Subs: Carroll (7), Hernandez (6)
Newcastle: Elliot (6), Yedlin (7), Clark (7), Lascelles (7), Manquillo (6), Diame (7), Saivet (6), Ritchie (7), Atsu (8), Gayle (6), Joselu (6)
Subs: Perez (6), Mbemba (n/a), Murphy (n/a)
Man of the match: Christian Atsu
Saivet's costly mistake came just six minutes into his first Premier League start of the season, with the Senegal international picking out Arnautovic on the halfway line, who then sped past Ciaran Clark before placing it beyond Elliot.
West Ham's lead was short-lived however, with Saivet responding in perfect fashion as his free-kick squeezed past Adrian from 30 yards out.
Newcastle were then denied by the woodwork, as Dwight Gayle hit the bar from six yards out before Matt Ritchie's curled effort from distance struck the outside of the post.
West Ham made three changes with Winston Reid, Cheikhou Kouyate and Andre Ayew coming into the side, while Ciaran Clark, Mohamed Diame, Matt Ritchie, Henri Saivet and Dwight Gayle were called into Newcastle’s starting XI.
After half-time, Atsu nutmegged Pablo Zabaleta before picking out Diame, who fired into the top corner from close range against his former employers.
Lee Mason then pointed to the spot three minutes later, and though Clark's challenge on Michail Antonio appeared to occur outside the area, Ayew spurned the opportunity when Elliot dived the right way to keep out the penalty.
Newcastle swiftly punished Ayew for the mistake, with Atsu scoring from a superb breakaway after playing a neat one-two with Joselu.
Ayew pulled one back for the Hammers after pouncing on the rebound from Andy Carroll's header, but their three-game unbeaten run in the league came to an end as Newcastle battled to a vital victory.
- Newcastle earned their first win in 10 Premier League games (W1 D1 L8), and first away league win since September (1-0 vs Swansea).
- West Ham have lost two successive home Premier League matches against newly promoted sides for the first time since 2006-07.
- This is the fourth time that Newcastle have won both Premier League games against West Ham in a season - on three of those occasions they've been a newly promoted side (1993-94, 2010-11 and 2017-18).
- Henri Saivet became the 16th player to score a direct free-kick goal in the Premier League for Newcastle - only Everton and West Ham (17 each) have had more.
Man of the match - Christian Atsu
One goal and one assist for the Newcastle winger, who posed problems for West Ham throughout - particularly on the break.
Zabaleta was left with his tail between his legs when Atsu nutmegged him for Newcastle's second, while the Ghana international went on to score the all-important third from a devastating counter, showing great awareness to find Joselu out wide before calmly slotting the return ball past Adrian.
David Moyes: "It was a game full of errors, I just keep looking at the goals we've conceded and the mistakes we've made.
"It was near enough right from the start. We got the goal - I think from a Newcastle mistake - but after we made two or three terrible mistakes which led to them scoring from a free-kick.
"All in all, it just seemed like that on the touchline. Mistake after mistake. We then missed a penalty at 2-1 which makes it even more difficult."
Rafael Benitez: "We were working so hard for so many games, we deserve a day like today. For the fans, it's fantastic.
"The game against Everton we hit the post twice. And today it was one of those days where I couldn't believe it would be the same again.
"We deserved to win. The performance of the team has been so good, it's a great feeling for us and the fans."
West Ham are back in action on Boxing Day, as they travel to Bournemouth for a 3pm kick-off. Meanwhile, Newcastle play host to leaders Manchester City on December 27 - live on Sky Sports Premier League.
Super 6 £1m jackpot
Simply predict six correct scores to win Jeff's £1 million. Enter your selections for free here.