Arsenal crumbled to a fifth straight away defeat in the league at St James' Park as Newcastle surely guaranteed survival with a super comeback.
It is rarely dull when these two sides meet and this proved no exception, with two fine finishes from Ayoze Perez and Matt Ritchie turning the game on its head.
The Gunners led courtesy of some superb link-up play between Pierre-Emerick Aubameyang and Alexandre Lacazette, with the latter smashing the ball home on the stretch after 14 minutes.
But their lead was soon cancelled out by a sublime flick at the near-post from Perez, who latched onto DeAndre Yedlin's cross from the right.
And the goalscorer turned creator in the second-half, finding Ritchie with a clever backheel to allow the Scotsman to fire past Petr Cech and ensure a fourth straight win for Rafa Benitez's side.
Arsene Wenger will be fuming with his defence for both goals, as the Gunners remain the only team in the league yet to pick up a single point on the road in 2018.
Perez was central to his side's fightback, scoring the first goal and setting up the second. It is not the first time he has been the Magpies' star man recently – this was the third consecutive game he's scored in and what a goal it was. It proved to be the catalyst for his team to go on and claim all three points.
Moment of the match
Questions will be asked of the Arsenal defence and Cech won't be pleased to have been beaten at his near-post, but Perez's equaliser was a thing of beauty. He glided across Shkodran Mustafi and flicked the ball into the net all in one motion, after the cross was fired in at pace and at an awkward height.
What the fans are saying
Newcastle: Dubravka, Yedlin, Lascelles, Lejeune, Dummett, Ritchie (Murphy), Diame, Shelvey, Kenedy, Perez (Joselu), Gayle (Slimani).
Subs not used: Clark, Hayden, Manquillo, Darlow.
Arsenal: Cech, Chambers (Maitland-Niles), Mustafi, Holding, Monreal, Elneny, Xhaka, Willock (Welbeck), Iwobi (Nketiah), Lacazette, Aubameyang.
Subs not used: Mertesacker, Ospina, Kolasinac, Nelson.
Arsenal v West Ham, Premier League, 22/04, 13:30