A superb late strike from Anwar El Ghazi dented Everton's slim UEFA Champions League hopes as Aston Villa moved into the top half of the table with a 2-1 win at Goodison Park.
Ollie Watkins fired Villa ahead on 13 minutes when he capitalised on Mason Holgate's error and slotted beyond goalkeeper Jordan Pickford.
Watkins was denied a second goal by a smart Pickford stop four minutes later, and El Ghazi struck the crossbar moments before Dominic Calvert-Lewin headed Everton level from Lucas Digne's delivery.
Emiliano Martinez saved another Calvert-Lewin header at point-blank range and Pickford made a double save to deny Bertrand Traore, blocking his shot before tipping the follow-up over as the teams traded scoring chances.
Villa threatened again in a pulsating first half as Ross Barkley's fierce 37th-minute drive smacked the upright from distance.
The high-tempo of the opening half proved hard to match in the second period and it took a piece of individual brilliance to settle the contest.
There were just 10 minutes remaining when Traore slipped the ball through to El Ghazi, who curled a sublime right-footed finish into the far corner.
Everton remain eighth on 52 points following their eighth home Premier League defeat of 2020/21, three points behind West Ham United in fifth.
Villa move up to ninth place in the table on 48 points.
See: Everton report | Aston Villa report
Next fixtures
Everton: 9 May v West Ham (A)
Aston Villa: 9 May v Man Utd (H)
Match officials
Referee: Simon Hooper. Assistants: Harry Lennard, Derek Eaton. Fourth official: Andy Madley. VAR: Graham Scott. Assistant VAR: Peter Kirkup.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time