Villa picked up an important point at Goodison Park but should really have celebrated victory after leading Everton 3-1 in an absorbing contest.
Christian Benteke fired the visitors into a second-minute lead, and although Victor Anichebe equalised, Gabby Agbonlahor restored the lead three minutes later before the Belgium international increased the advantage just past the hour mark.
It was Benteke's 14th goal for Villa, but his fellow countryman Marouane Fallaini reduced the deficit in the 69th minute - and then headed a dramatic equaliser in the third minute of stoppage time.
It was a bitter blow for Paul Lambert's men, who had produced some of their best football of the season, with new signing Yacouba Sylla making a brief but promising debut when he replaced Agbonlahor in the 79th minute.
Benteke's early breakthrough was indicative of a player in lethal form, although much of the credit should go to Charles N'Zogbia's creative flair.
Despite being surrounded by three opponents, the French midfielder cut inside before slipping a short, precise pass into Benteke's slipstream and the striker outpaced John Heitinga before sending a low right-foot shot across Tim Howard and just inside the far post.
The home side responded with a Fellaini shot which flashed narrowly wide and an Anichebe angled drive which was parried by Brad Guzan, although Benteke was unlucky with an 11th-minute shot which deflected for a corner after Agbonlahor had cut the ball inside from the left.
N'Zogbia's flag kick was met by an Andreas Weimann header which went too high before the Merseysiders pressed forward again, Darron Gibson's low drive going behind for a corner before Guzan held Steven Pienaar's low effort.
On 21 minutes the home side were level, Anichebe accepting a pass from Kevin Mirallas with his back to goal and holding off Ciaran Clark's challenge to fire home a low right-foot shot on the turn.
But after Benteke's fierce drive had been charged away for a corner by Heitinga, Villa were back in front on 24 minutes.
Matt Lowton collected an Everton clearance and played the ball wide to Ashley Westwood on the right.
The midfielder produced a perfect cross - and Agbonlahor's glancing header left Howard helpless.
As Everton strove to get level again, Leon Osman's low shot was deflected for a corner, while Mirallas and Pienaar both fired too high.
Fellaini needed lengthy treatment just after half-time when he went down injured in the goalmouth as Guzan punched clear a free-kick.
The towering Belgian recovered, and it wasn't long before he tested Guzan with an angled shot which the keeper held firmly as he fell.
By then, though, Villa should have extended their advantage.
A delightful 52nd-minute move saw Agbonlahor and N'Zogbia exchange passes from deep in their own half to the half-way line before Agbonlahor threaded a superb through ball to Weimann.
The Austrian striker looked a certain scorer as he darted into the penalty area, only to lift his shot over the bar as Howard raced out.
But Villa were not to be denied and in the 61st minute it was 3-1, Lowton crossing from the right and Benteke getting in front of Heitinga for a stooping close-range header into the bottom corner.
After Agbonlahor had done well to clear from Anichebe as the Everton striker was about to shoot, the home side reduced the deficit in the 69th minute, Fellaini exchanging passes with Anichebe before drilling a right-foot angled shot past Guzan and into the far corner.
If Villa had been impressive earlier in the half, it was now Everton's turn to dominate, and five minutes later Guzan had to make an instinctive one-handed save to push away a close range shot from sub Nikica Jelavic.
It looked as if Villa would hold on for a vital victory - until Fellaini pounced with his stoppage-time header from a Leighton Baines corner.
Everton: Howard; Jagielka, Heitinga (Oviedo 65), Distin, Baines; Gibson (Naismith 90), Osman; Mirallas (Jelavic 65), Fellaini, Pienaar; Anichebe. Unused subs: Mucha, Hitzlsperger, Neville, Duffy.
Villa: Guzan; Lowton, Vlaar, Clark, Bennett; Weimann, El Ahmadi (Holman 82), Westwood, Agbonlahor (Baker 90); N'Zogbia (Sylla 79); Benteke. Unused subs: Given, Bent, Bowery, Dawkins.