An own goal from Ben White and then a late strike from January signing Bruno Guimaraes sealed the win for Newcastle and left Arsenal two points off Tottenham in fourth in the standings with one game of the season remaining.
Newcastle started brightly, roared on by their fans in their last home game of the season.
They came close to scoring in the 37th minute through Allan Saint-Maximin, who cut in from the wing to the edge of area but saw his low shot palmed away by Aaron Ramsdale.
The breakthrough came shortly after half-time, however, when Joelinton powered down the left wing and sent in a low cross that came off Arsenal defender White and into his own net.
The hosts had plenty of chances to double their lead and finally did so in the 85th minute when the ball ricocheted off Ramsdale into the path of Guimareas who side-footed it in.
The win, Newcastle's first in the league over Arsenal since April 2018, means Eddie Howe's side move up to 12th in the standings having been in the bottom three at Christmas.