Aiden McGgeady hit the post with a curling effort early on but Everton then laboured for much of the first half, conceding the opener when a slip by Ross Barkley allowed Christian Benteke to play in Lacuna Bacuna, who fired low through Tim Howard's legs.
Everton spent the second half encamped in Villa's half, but the visitors packed men behind the ball and left the Blues frustrated.
Relief pulsated around Goodison on 74 minutes when substitutes Steven Pienaar and Steven Naismith combined, the former playing a deft ball through to the latter, allowing him to poke past Brad Guzan.
Relief then turned to ecstasy 10 minutes later when Kevin Mirallas curled home a wonderful free kick over the wall and into the corner to secure all three points.
A successful weekend was helped by Tottenham and Liverpool drawing and Manchester United losing, repairing at least some of the damage inflicted by their horror show across the park earlier in the week.
The result moves Everton up to fifth, two points behind Liverpool, four points ahead of United and just one ahead of Spurs - with a huge trip to White Hart Lane lying in wait next weekend.