Villa boss Martin O’Neill had challenged his side to win their remaining six games to give them a realistic hope of overhauling Manchester City and Tottenham.
In the end they were happy to settle for a point after twice bouncing back from Tim Cahill goals, first through Gabriel Agbonlahor’s 50th goal for the club and then thanks to Phil Jagielka’s injury-time own goal.
It kept them four points ahead of Everton who have played a game more.
Villa showed plenty of purpose and invention in the first half but Cahill gave Everton the lead and Tim Howard made a trio of fine saves at the other end.
Agbonlahor gave them a lifeline after a break but they lacked the same creativity and puprose and they looked to have been undone by Cahill’s second before Jagielka’s late gift.
Howard was the first keeper to be seriously extended in parrying away a low drive from Villa midfielder Stewart Downing after he had turned away from Diniyar Bilyaletdinov to create a yard of space.
Villa started to exert pressure and John Carew deflected a shot wide at full stretch from a near post cross by Downing.
O’Neill’s side were showing plenty of purpose and Howard again did well to turn a first-time shot from James Milner around the post from Agbonlahor’s through ball.
Then Villa keeper Brad Friedel showed his worth in parrying a Leon Osman piledriver around a post and then blocking a rising close range effort from Bilyaletdinov.
After 23 minutes Everton went ahead through Cahill’s eighth goal of the campaign.
Villa left-back Stephen Warnock was adjudged to have brought down Osman although it looked an innocuous challenge.
Leighton Baines floated the ball into the Villa area and Cahill was the first to react in heading past Friedel
Cahill then became the first player to be yellow carded by referee Martin Atkinson for a challenge on Villa skipper Stiliyan Petrov.
Villa tried to retaliate and Carew showed his power in shaking off the challenge of Jagielka before slicing his shot into the side netting.
Howard made another excellent save three minutes before half-time to keep out a close range header from Carlos Cuellar from Milner’s centre.
John Heitinga needed touchline treatment to his ankle early in the second half after a challenge from Agbonlahor before being able to continue.
But he quickly went down again and was substituted after 50 minutes and replaced by Jack Rodwell.
Stephen Pienaar’s pass picked out the run of Yakubu inside the Villa box but his first touch was not the best and he was crowded out before he was able to get in a shot.
The game was less open than in the first half although Everton were looking the more purposeful and Bilyaletdinov had an effort blocked by Richard Dunne.
Carew created half a chance from nothing when surrounded by Everton defenders and saw his shot deflected wide.
Everton boss David Moyes made his first change after 63 minutes with Yakubu replaced by Louis Saha.
With 18 minutes remaining, Agbonlahor brought Villa level with his 50th goal for the club – and 15th of the campaign.
Milner sent over a cross from the touchline and Agbonlahor sent a glancing header wide of Howard into the corner of the net.
But two minutes later Cahill struck again to restore Everton’s lead.
There was a question mark over Villa’s defending with Cahill presented with a free header in converting Bilyaletdinov’s corner.
O’Neill brought on young striker Nathan Delfouneso in place of Warnock as he gambled on playing three up front.
In injury time Young arrowed over a left-wing centre and Jagielka could only deflect the ball wide of Howard who tried in vain to keep it out of the net.