Kane’s double, taking his tally to six in four games, and a third from Christian Eriksen gave Mauricio Pochettino’s side a three-goal lead on the hour before Javier Hernandez started the Hammers fightback.
The home side were helped by the 70th-minute dismissal of Serge Aurier for a second yellow card and were given further hope when Cheikhou Kouyate headed home from Arthur Masuaku’s 87th-minute cross.
But Spurs held on to claim a third win in three away games, a record that eases the pressure over their continuing problems in their temporary home at Wembley, where they have yet to win in the league.
Tottenham manager Pochettino had taken a 49-strong group of players and club staff out for a mid-week meal at a London steak restaurant to strengthen the bond within the squad.
His side needed to draw on all of that team spirit to stand firm when it looked as though they might squander the chance to close the gap on the Premier League leaders.
West Ham may have been unable to match Tottenham’s progress in recent years, but they have had the edge over their London rivals on home turf.
Twice in the last two seasons, a 1-0 home win for West Ham has brought an end to Spurs’ title challenge.
For the opening half hour at London Stadium it looked as though the home side would be capable of once again upsetting Pochettino’s men.
The warning signs, though, were there for West Ham in the 24th minute when Aurier was sent clear on the right by Moussa Sissoko.
His low cross would have brought the opening goal had Kane not mistimed his forward run.
– ‘Sacked in the morning’ –
While Tottenham were beginning to assert themselves, West Ham were forced into a reshuffle in the 27th minute when Michail Antonio limped off with a groin problem to be replaced by Andy Carroll.
Carroll made an entrance he would prefer to forget, giving the ball away near halfway and allowing Eriksen to start the move that led to Kane’s 34th-minute opener.
The Denmark international placed the ball into the path of Dele Alli on the right flank and the midfielder whipped in a cross that allowed Kane to send a glancing header past goalkeeper Joe Hart.
Four minutes later, Carroll once again conceded possession near halfway.
This time it was Jan Vertonghen who picked out Alli’s run into the box and when Hart saved the England midfielder’s initial shot, Kane was on hand to turn in the rebound.
It was all too easy for Pochettino’s team, who continued to apply intense pressure after the break.
They extended their lead on the hour when Eriksen stroked in the third after Kane had struck the post from a free-kick.
The Tottenham supporters began to chant ‘You’re getting sacked in the morning!’ at Slaven Bilic and things could have looked even bleaker for the West Ham manager had Kane not hit the woodwork for a second time.
But West Ham were handed a lifeline in the 65th minute when Hernandez headed in a reply after Jose Fonte had flicked on Aaron Cresswell’s corner.
Home hopes were further strengthened when Aurier clattered into the back of Carroll to pick up his second caution in six minutes, leaving Spurs with 10 men for the final 20 minutes.
Kouyate’s thumping header set things up for a grandstand finish, but Spurs survived a fractious period of stoppage time to complete victory.