Tony Pulis's side recorded their fourth win in as many games but the hosts' hopes of holding off Arsenal were damaged by Jason Puncheon, Scott Dann and Cameron Jerome
Tony Pulis's men took the lead through Jason Puncheon midway through the first half before Scott Dann netted from a corner just after the break to give them total control of the game.
Steven Naismith tapped into an empty net on the hour to give the Toffees some hope of maintaining their lead over Arsenal but Cameron Jerome's strike put them down and out, while giving the Eagles their fourth consecutive league win despite a late consolation for Kevin Mirallas.
The hosts - who made three changes as part of an attacking line-up, with Ross Barkley, Mirallas and Aiden McGeady all starting - forced the pace from the off, with Gareth Barry stooping to head over from a Leighton Baines corner in the first minute.
|VIEW FROM GOODISON PARK
|By Gary Maiden
A vital win for Crystal Palace took them onto the magic 40-point mark and will see them competing in the Premier League once again next season. It has been a remarkable turnaround from Tony Pulis and his side, who were six points adrift of safety when he took over.
There can be no arguments that the Eagles deserved the three points here. They were incisive on the break and defended bravely throughout.
Defeat, however, deals a real hammer-blow to Everton's Champions League ambitions. The Toffees now sit a point behind Arsenal, with both Manchester clubs to visit Merseyside in the final weeks of the season. If they are going to do it, they will have to do it the hard way as qualification for Europe's elite competition is now out of their hands.
They went closest to breaking the deadlock in the opening stages when, after 20 minutes, Jerome found space unmarked in the penalty area but his header from Joe Ledley's cross flashed narrowly over the crossbar - although the Palace striker looked to be in an offside position.
The visitors made their pressure count after 23 minutes when Tim Howard could only parry Yannick Bolasie's right-wing cross. The ball fell to Puncheon, who finished neatly from 10 yards for his fourth goal in the last three games.
It was nearly 2-0 before the interval when a breakaway saw Bolasie hit the base of the post from 30 yards and an unbalanced Jerome could only put the rebound wide. Romelu Lukaku then diverted a Barkley cut-back on goal but Julian Speroni dived smartly to push the ball wide.
Ledley forced a fine save from Howard two minutes into the second half but, from the resulting corner, defender Dann's powerful downward header stunned Goodison Park as it beat the unsighted goalkeeper to double Palace's lead.
McGeady almost responded immediately when his fierce 30-yard strike bent narrowly wide of Speroni's left-hand post.
Half-time substitute Naismith did pull Everton back into the game when he converted from close range after Baines had headed a deep Mirallas cross into his path after 61 minutes.
Mirallas then nearly equalised when he met a dipping cross from Baines at the back post but, with 17 minutes left, Puncheon was again the architect, showing superb close control on the edge of the box before sliding the ball into Jerome, who curled it into the bottom corner.
Everton refused to lay down even then and, with four minutes to go, Barkley's through-ball was deflected into the path of Mirallas, who rounded Speroni and fired home.
Despite another late chance for the Belgian forward, who mis-kicked with the goal at his mercy, Everton could not find a way back as Palace hung on to effectively end any lingering fears of relegation and simultaneously blow the race for fourth place in the Premier League wide open.