The Belgium international's late, curling free kick sealed all three points for the Toffees as they overcame a resilient and dogged Villans side who had taken a first-half lead
Everton took control early on, with Aiden McGeady cutting inside and smashing the post with a wickedly curling effort, but fell behind against the run of play to Leandro Bacuna's strike mid-way through the first half following a swift break.
The Toffees continued to dominate possession in search of an equaliser, with Villa offering little in attack, and finally found a breakthrough when Steven Naismith linked with fellow substitute Steven Pienaar to tuck the ball beyond Brad Guzan.
Roberto Martinez's side continued to push forward and duly claimed a vital winner, as Mirallas curved a vicious free kick beyond the reach of Guzan and just under the crossbar to take all three points.
|VIEW FROM GOODISON PARK
|By Tom Maston
Everton were far from their best, but if they are to gatecrash the top four and qualify for the Champions League then victories such as this one may well have to become common place.
Kevin Mirallas’ stunning free kick sealed all three points that on the balance of play the Toffees just about deserved. Mirallas’ showing summed up the performance of his side as he struggled for 80 minutes but did enough in the end to go home happy.
Paul Lambert’s side did not deserve to be beaten, though they could do little about the winner. The injury list at Goodison Park does seem to be shortening and Roberto Martinez can at least leave happy in the knowledge that his side continue to go in the right direction.
Cutting inside from the right, the Republic of Ireland international unleashed a superb curling effort from the edge of the penalty area that struck the left-hand post.
Everton dominated possession in the opening stages, but struggled to cause Villa goalkeeper Brad Guzan too many problems in the wake of McGeady's early strike.
The 27-year-old – signed from Spartak Moscow during the January transfer window – was also responsible for the game's first shot on target, but his low drive was comfortably collected by Guzan.
Having not troubled Tim Howard at all for the opening 30 minutes, it was Villa who took the lead when Christian Benteke slid in Bacuna and the Dutchman slotted beyond the Everton stopper from close range for his fourth goal of the season and second in as many matches.
Fabien Delph dispossessed Ross Barkley superbly in the middle of the park in the build-up to the goal.
Martinez brought Pienaar on in place of Barkley for the second half as Everton went in search of an equaliser and Leon Osman blazed across goal 10 minutes in, missing out on a seventh career goal against Villa.
Pienaar pulled the trigger from 20 yards shortly after the hour mark, but his fizzing effort only succeeded in stinging the palms of Guzan.
Everton finally pulled themselves level in the 74th minute, when Naismith burst into the penalty area to latch onto Pienaar's cutely flicked through-ball and poke beyond the Villa goalkeeper.
And Mirallas completed the comeback five minutes from time with a wonderful set-piece finish, giving Everton their first Premier League double over Aston Villa and pushing them up to fifth place in the league table.