Eight of the last 10 H2Hs had produced two or more goals, but on the basis of the opening half-hour, that feat looked unlikely to be repeated here.
Spurs were largely on top for most of the first half, although the contest lacked much flow as fouls from both sides continually broke up play in the early stages.
Yet, against the run of play, Villa first struck the post via Amadou Onana’s header before taking the lead soon after when Tottenham once again failed to defend a corner, allowing Morgan Rogers to net from point-blank range – his third goal in as many away matches.
Ollie Watkins had been quiet for much of the half, but he had a chance to double Villa’s advantage before HT, dragging well wide with a clear sight of goal.
Despite seeing more of the ball before the break, Tottenham created very little in the way of chances, restricted to fanciful long-range shots from the likes of Rodrigo Bentancur.
Thankfully for Ange Postecoglou, his side atoned for that lack of cutting-edge inside three minutes of the second half, with Brennan Johnson arriving at the back post to turn in Son Heung-min’s inviting whipped cross.
Energised by that equaliser, the hosts seemingly stepped up a gear as Dominic Solanke forced a low reflex save from Emiliano Martínez.
Never shying away from a bold move, Postecoglou made a pair of changes just before the hour mark, bringing on Richarlison in place of captain Son, much to the Korean’s surprise.
Rogers was also left disappointed as he made way for the visitors, bookending a lull in action as both sides looked to calm things down.
With 15 minutes to play, it was the hosts who found a way through thanks to a clever pass from Dejan Kulusevski, allowing Solanke to net against Villa for the third PL game in succession with a delightful dink.
Just four minutes later, there was finally daylight between the sides as Pape Matar Sarr stole possession in midfield before laying the ball off to Richarlison, who squared to Solanke for a simple tap-in.
Those quickfire strikes seemed to knock the stuffing out of the Villans, who were unable to muster a response before substitute James Maddison netted his 50th PL goal with an inch-perfect stoppage-time free-kick to seal victory for Tottenham.
After becoming the first PL side to lose a league game to Crystal Palace this season, Tottenham have responded brilliantly by knocking Manchester City out of the EFL Cup and beating high-flying Villa in the space of a week.
Three points lifts Spurs to seventh in the table, two points behind Unai Emery’s side in fifth.
Flashscore Man of the Match: Dominic Solanke (Tottenham Hotspur)