Robbie Keane came off the substitutes' bench to fire a late equaliser and earn Spurs a point in an entertaining game.
James Milner's early long-range strike seemed set to win the game for Villa, especially when Jermain Defoe's penalty was saved by Thomas Sorensen.
Villa's Liam Ridgewell hit the bar on the hour - before Defoe did the same one minute later at the other end.
But Keane took advantage of hesitant Villa defending to rifle a right-foot equaliser with 12 minutes left.
It was Spurs' first Premiership goal in 363 minutes and gave them a draw their play just about merited.
Chances had flowed from the first whistle and Ledley King had already wasted an early headed opportunity when Villa took the lead inside five minutes.
Milner's low strike was unerring, flashing past Paul Robinson's right hand from 25 yards and nestling in the corner.
Milner nearly set up a second minutes later, cutting in from the right and feeding Patrik Berger, whose left-foot shot was blocked by the sprawling Robinson.
Yet Spurs should have levelled after 19 minutes when Defoe's low cross found Teemu Tainio but the Finn blazed over from six yards.
Defoe was left to rue his luck after an even better opportunity seven minutes later.
Wilfred Bouma was judged to have controlled the ball with his arm inside the box but the England striker's weak penalty was pushed out by Villa keeper Sorensen, diving to his right.
Spurs continued to press and Michael Carrick's long-range shot forced a good save from Sorensen.
Nevertheless, it was the visitors who were thankful to reach half-time without conceding further - as Robinson twice saved from Juan Pablo Angel inside a minute just before the break.
First the Colombian sent in a header that Robinson blocked with his feet, then the England goalkeeper sent out his right leg to stop a shot after Angel cleverly worked himself a shooting angle.
The second half began in cagey fashion but, on the hour, the game sparked into life as each side hit the bar within one minute of each other.
First, Villa came within a whisker of doubling their lead as Ridgewell latched on to Berger's free-kick only to see his shot cannon back before being cleared.
Then Defoe raced through at the other end, producing a shot that beat Sorensen, only to rebound back.
Sorensen produced a great save as substitute Keane produced an instinctive snapshot after Grzegorz Rasiak's flick-on.
But Baros had the chance to make the game safe with 15 minutes to go, racing clean through only to slide the ball horribly wide as Robinson advanced.
And Keane made the home side pay as he ran into the box to fire past Sorensen from 10 yards.
Aston Villa boss David O'Leary:
"It should have been 3-0 in the first eight minutes and there should have been more in the second half.
"It was a wonderful game though, that's the games we want to see, quality sides, good players, good football.
"I can't fault the players but we let the game get away from us. We did not get the end product we wanted."
Tottenham head coach Martin Jol on Robbie Keane's chances of starting Spurs' next game:
"Jermain Defoe is scoring very good, important goals, Robbie Keane was last year.
"But they play in a similar position. If you play both you have problems, especially with corners as we are not a big team.
"But we can play them together and they can play marvellous football."
Aston Villa: Sorensen, Hughes, Mellberg, Ridgewell, Bouma (Samuel 72), Milner, Davis, Barry, Berger, Angel, Baros.
Subs Not Used: Hendrie, Taylor, Cahill, Moore.
Goals: Milner 4.
Tottenham: Robinson, Stalteri, King, Gardner (Naybet 39), Lee, Jenas, Carrick, Tainio, Reid (Keane 67), Defoe, Rasiak.
Subs Not Used: Cerny, Brown, Lennon.
Booked: King, Naybet.
Goals: Keane 78.
Ref: S Bennett (Kent).