Andreas Weimann slid the home side into a first half lead, before Villa were reduced to 10 men following the dismissal of Christian Benteke in the second period.
Nacer Chadli popped up at the back post to convert Erik Lamela's corner and restore parity six minutes from time, before substitute Harry Kane fired home an 89th-minute free kick to seal the points.
Aston Villa: Guzan, Lowton, Vlaar (c), Baker, Cissokho (Bent, 90+3), Westwood, Cleverley, Sanchez, Weimann (Richardson, 87), N’Zogbia (Agbonlahor, 74), Benteke. Substitutes (not used): Given, Cole, Clark, Grealish.
Spurs: Lloris, Naughton, Kaboul (c), Vertonghen, Rose; Capoue (Townsend, 72), Chadli, Eriksen (Lamela, 46), Mason; Adebayor (Kane, 58), Soldado. Substitutes (not used): Vorm, Fazio, Dembele, Stambouli.
Goals: Villa - Weimann (15). Spurs - Chadli (84), Kane (89).
Yellow cards: Villa - Cissoko, Weimann, Sanchez. Spurs - Eriksen, Vertonghen, Chadli.
Red card: Villa - Benteke.
Referee: Neil Swarbrick.