The Gunners improved after the break, with Emile Smith Rowe and Martin Odegaard missing big chances to get their team back in the match. Their wastefulness proved costly as Wilfried Zaha put the game to bed with a penalty 16 minutes from time.
- Olley: Palace loss serves as a warning for threadbare Arsenal
- Premier League table: Tottenham fourth, Arsenal fifth
- Spurs vs. Arsenal finally gets rescheduled
The scoreline at Selhurst Park did not flatter an impressive Palace, who continue to improve under former Arsenal captain Patrick Vieira, with the victory moving them up to ninth.
"I'm really proud," Vieira told Sky Sports. "We defended well and took our chances. We scored in important moments of the game. We needed a big team performance and we did it so we're really pleased.
"It is a good moment for the club but we know we need to be consistent in our performances and results."
Arsenal had been in fine form on the road in the Premier League prior to their trip across London on Monday.
"Congratulations to Palace for the game they played but we made it impossible for ourselves with the way we competed," Arsenal coach Mikel Arteta told Sky Sports.
"I apologise to our supporters. We didn't have the presence today or the composure to dominate the situation so that is what I'm most annoyed with.
"First of all we need to put our hands up and get the criticism we deserve. Then we accept it, look ourselves in the mirror and look to the next game. This was not good enough."
But they struggled from the start to find any rhythm, with Palace very much the better side in the opening period.
It took the home side 16 minutes to break the deadlock, as Joachim Andersen's head sent a free-kick across the box for Mateta to steer in his fourth league goal of the season.
Eight minutes later and centre-back Anderson again turned provider, picking out a perfect pass for Ayew, who controlled well before finding the net for the first time since December.
Arsenal could not create any openings of note in the first half, with Mateta going close to adding a third for Palace before the interval.
Content with a two-goal lead, the hosts sat back and invited pressure after the break. Smith Rowe should have done better from close range before Odegaard dragged his effort wide.
Zaha then broke on the counter and was awarded a penalty -- only Raheem Sterling (23) and Jamie Vardy (21) have been given more penalties in Premier League history than the Ivory Coast forward -- which he converted emphatically.
Arsenal substitute Eddie Nketiah did hit the crossbar but it would have been too little, too late.
Afterwards, Arteta said they had talked about the importance of winning the individual battles.
"We discussed it just before kick-off, the way you win here is when you compete the way you should," he added. "That means you win duels, have a presence and the composure on the pitch to manage certain situations.
"They are a really physical team and the pitch is not the best to do that so you have to find a way to do other things that usually you don't have to do. We didn't manage to do that."
A second defeat in their last three league games opens the door for Arsenal's top-four rivals and Arteta's side still have it all to do to secure a return to the Champions League for the first time since 2016-17.