Leon Osman gave the Toffees the lead after they dominated the early stages of the contest when he received Tim Cahill's reverse pass to slot into the bottom corner in the 19th minute.
The home side held their lead for about 45 minutes until Villa skipper Stiliyan Petrov made something out of nothing with a brilliant finish from 30 yards which curled into the bottom corner, however, the visitors were only on level terms for a few minutes as Everton were awarded a penalty.
Villa's Fabian Delph climbed all over the back of Phil Jagielka in the area giving referee Michael Oliver no choice but to point to the spot with Leighton Baines resuming his penalty duties by sending Shay Given the wrong way to make it 2-1 in the 69th minute.
Villa were desperate to get a leveler and went about throwing men forward and it paid off as Marc Albrighton sent an 83rd minute swinging ball towards Gabriel Agbonlahor who headed home from close range for his second of the season.
The draw has Everton in 11th whilst Villa went 8th as they have started the season with three draws and a win from their four outings.
TRIBAL ASKS: Will Everton fans be happy with that result after leading twice, especially as their off-field woes start to take their toll?
Match facts:Everton not beaten Villa since March 2006 in last 11 attempts.
Third 2-2 scoreline between these two clubs in last four meetings.