Substitute Kane's deflected free-kick secured three points at Villa Park after Nacer Chadli had equalised in the 84th minute.
Tottenham cashed in after Christian Benteke was sent off in the second half for clashing with Ryan Mason.
Andreas Weimann had opened the scoring when he bagged Villa's first goal in 547 minutes
Despite their first goal since September Villa could not hold on and have now lost their last six games in the Barclays Premier League
Victory lifted the heat off Tottenham boss Mauricio Pochettino whose side had only won once in their previous seven Barclays Premier League games.
The result means, however, that Villa boss Paul Lambert will now come under increasing pressure from fans due to his side's dismal run.
Lambert dropped Gabriel Agbonlahor to the bench in search of a goal as Charles N'Zogbia and Nathan Baker were recalled, with Ciaran Clark also relegated from the starting XI.
Kyle Naughton replaced Eric Dier while Roberto Soldado came in for Erik Lamela for Spurs.
Soldado might have justified his selection inside the first minute but fired wide.
He should then have put the visitors ahead after 12 minutes, but headed wide after Christian Eriksen's shot deflected into his path.
In between Benteke nodded wide and the Belgium international went even closer to ending Villa's goal drought when he hit the bar from 16 yards.
But the hosts did, finally, score in the 16th minute when N'Zogbia was allowed to cut inside on the right and his low cross was steered into the right corner by Weimann from 10 yards.
A first goal in 50 days raised the hosts' belief but Spurs still created the better openings and Guzan gathered Younes Kaboul's close-range header.
Tottenham were slicker than Villa and exploited space out wide but failed to find a killer touch
While they had style Spurs lacked the grittiness the hosts displayed.
Soldado and Emmanuel Adebayor were wasteful before Adebayor missed a golden chance to level after 27 minutes.
The striker was put clean through by Soldado but his low effort was turned wide by Brad Guzan.
Benteke's looping header dropped just wide three minutes before the break and Pochettino reacted by throwing on Lamela for Eriksen for the second half
When that had little effect, Kane replaced Adebayor after 57 minutes and the striker immediately headed straight at Guzan.
Jan Vertonghen was booked for a two-footed challenge on Ashley Westwood before the second half exploded into life when Benteke was sent off after 64 minutes.
The striker clashed with Lamela and Mason in front of the dugouts, and shoved Mason in the face.
It sparked a melee between the two teams before Benteke was dismissed to give Spurs renewed hope.
Weimann was booked for dissent as tempers continued to flare.
And Tottenham levelled with six minutes left when Chadli arrived at the far post to volley in Lamela's corner.
They then snatched the points in the 90th minute when Kane's 20-yard free kick deflected off Baker to wrong-foot Guzan and fly in.
Source : PA
Source: PA