Conor Gallagher scored twice, including a sensational late goal, as Crystal Palace held off an Everton fightback to win 3-1 at Selhurst Park.
Gallagher fired in his first from close range on 41 minutes after Jordan Ayew capitalised on a misplaced Demarai Gray pass for the visitors.
James Tomkins doubled the lead by slotting in Will Hughes's corner when unmarked at the far post on 62 minutes.
Substitute Salomon Rondon gave Everton hope when he prodded in from close range after Abdoulaye Doucoure's pass was deflected into his path.
Vicente Guaita produced a superb save to deny Anthony Gordon late on, following the Everton substitute's surging run, and Palace capitalised in spectacular fashion.
Gallagher brilliantly curled the ball in off the crossbar in the third minute of stoppage time to seal a win that ends the Eagles' three-match losing run.
Palace are up to 12th position on 19 points, one points more than 14th-placed Everton.
See: Crystal Palace report | Everton report
Next fixtures
Crystal Palace: 15 Dec v Southampton (H)
Everton: 16 Dec v Chelsea (A)
Match officials
Referee: Andy Madley. Assistants: Adrian Holmes, Simon Beck. Fourth official: Tony Harrington. VAR: Stuart Attwell. Assistant VAR: Harry Lennard.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time