First-half goals from Santi Cazorla and Olivier Giroud gave the Gunners all three points but the scoreline did not tell the full story for Crystal Palace.
Alan Pardew’s men caused plenty of problems for Arsenal’s defence all afternoon with Dwight Gayle, Jason Puncheon and substitute Glenn Murray all going close in the second half.
Palace finally grabbed a goal in the final minute of added time as Murray scrambled the ball home and he had the chance to secure an unlikely point in the dying seconds but the striker’s header rebounded off the post.
But Arsene Wenger’s side held on amid the Palace onslaught for a vital eighth victory in nine matches to keep the pressure on in the race for the top four.
It was Crystal Palace who made the brighter start to proceedings but did not have anything to show for it when Pape Souare, making his Premier League debut for the club, lost the ball to Danny Welbeck, before bringing down the England striker right on the edge of the penalty area.
Mark Clattenburg, with the help of his assistant, pointed to the spot and Cazorla sent Julian Speroni the wrong way to score his seventh goal of the season with just eight minutes on the clock.
It was not the start Pardew would have wanted but he would have been encouraged by his side’s high-energy display as they continued to ask plenty of questions of Arsenal.
Wilfried Zaha was particularly lively for the hosts, causing left-back Nacho Monreal all sorts of problems, but the end product remained elusive, Gayle particularly wasteful from set-piece situations.
It was to come back to haunt them as Arsenal doubled their advantage in added time of the first half, Speroni parrying Welbeck’s goal-bound shot and Giroud reacting quickest to stab home his 50th Arsenal goal.
Pardew’s men came out firing on all cylinders after the break with Zaha still at the heart of much of their good work, but Arsenal looked particularly dangerous on the counter-attack.
In the 56th minute, Arsenal sprung forward through Mesut Ozil, who held the ball up brilliantly before producing an inch-perfect pass for Alexis Sanchez. The Chilean forward lifted the ball over Speroni but it drifted just wide of the far post.
Wenger would have been wondering whether that miss would prove to be costly as Palace went in search of a foothold in the game and they nearly had it when David Ospina charged of his line, Zaha unable to turn in substitute Yannick Bolasie’s cross.
Gayle went close soon after, getting in front of Per Mertesacker to head goalwards, but the ball flew inches over the cross bar just before Puncheon’s free-kick beat Ospina all ends up but flew inches past the post.
Pardew threw on Shola Ameobi and Murray with 15 minutes to go and the move had the desired effect as the latter pulled a goal in the 94th minute back for the hosts.
That proved too late, though Murray went agonisingly close at the death when he got his head on Bolasie’s cross, only for the ball to come crashing back off the post.
Crystal Palace: Speroni (6), Ward (6), Delaney (6), Dann (6), Souare (5), Mutch (6), Ledley (6), Puncheon (7), Zaha (7), Gayle (6), Campbell (6).
Subs used: Bolasie (7), Ameobi (6), Murray (7).
Arsenal: Ospina (6), Chambers (6), Mertesacker (7), Koscielny (7), Monreal (6), Coquelin (6), Cazorla (7), Welbeck (7), Ozil (7), Alexis (6), Giroud (7).
Subs used: Gibbs (6), Gabriel (5), Rosicky (6).
Man of the match: Jason Puncheon