Tyrick Mitchell's first goal for Crystal Palace helped overcome Aston Villa in a five-goal thriller at Selhurst Park.
John McGinn's third goal of the season put Villa ahead in the 17th minute when he curled a shot into the bottom corner.
Christian Benteke equalised against his former club in the 32nd minute.
After Wilfried Zaha had a shot blocked, Tyrick Mitchell chipped the loose ball into the penalty area, with Benteke heading into the far corner.
But Palace, well clear of the relegation zone and assured of Premier League survival, fell behind again two minutes later when Anwar El Ghazi scored from close range.
The Eagles, however, equalised for a second time in the 76th minute when Zaha scored his 11th goal of the season when he cut inside before a low shot was deflected in off Ahmed Elmohamady.
And six minutes from time, Palace's comeback was complete when Eberechi Eze miscued from inside the box following a cut back from Zaha only for Mitchell to follow-up from close range as the 21-year-old scored his first goal for the south London club.
"It's a dream come true," Mitchell told Sky Sports. "I was just gambling. I tried to go back post for the first cross and then when it went back out I thought I'd stay around. I just tried to be in the right place.
"I knew it hit my shoulder, for a second I was a bit scared [it would be disallowed]. It's been an amazing season... and I'm buzzing. I didn't think I would feature this much and I'm just thankful to the manager.
"I've learnt a lot, how hard it is in the Premier League week in, week out but I feel I've got a lot more confident."
McGinn said Villa needed to be more "street-wise" and defend better after allowing Palace to seal a come-from-behind win.
"We had control of the game and scored two good goals. We needed to build on that but the second half wasn't the standards we have set this season so we need to look at it."
Both sides made changes with little to play for and Jack Butland was handed a surprise start in goal by the hosts for his first Premier League appearance in three years.
Jack Grealish remained on the bench for Villa, who were missing Tyrone Mings and Matty Cash.