The Three Lions had lost their only previous two semi-finals in the competition – against Yugoslavia in 1968 and Germany in 1996 – but Kane stroked home after his initial penalty had been saved by Kasper Schmeichel in the 104th minute to ensure they will face Italy in the Euro 2020 final on Monday (AEST).
Mikkel Damsgaard had put Denmark ahead on the half-hour mark with a superb free-kick before Gareth Southgate’s side pulled level before the break when Simon Kjaer bundled into his own net under pressure from Raheem Sterling.
England was unable to find a winner inside 90 minutes, but Kane secured a memorable win at the second time of asking to set up a mouth-watering clash against Roberto Mancini's Azzurri at the weekend.
Sterling scuffed a shot straight at Schmeichel after cutting in from the left early on, while Martin Braithwaite had an effort deflected wide at the other end following a poor throw by Jordan Pickford.
England struggled to get a foothold in the game for much of the opening half hour and were duly punished when Damsgaard whipped a free-kick past Pickford from 30 yards, ending a run of 691 minutes without conceding for Southgate's men.
Sterling fired straight at Schmeichel from six yards as England belatedly woke from their slumber, before they pulled level in the 39th minute when Kjaer turned into his own net from Bukayo Saka's low cross.
A full-stretch Schmeichel pawed away Harry Maguire's header at the start of the second period, while a Luke Shaw cross flashed wide after taking a heavy deflection off Pierre-Emile Hojbjerg.
England dominated the second half, taking nine shots to Denmark's one, but it was unable to find a goal that would have prevented extra-time.
Kane was denied by Schmeichel from a tight angle at the start of the additional period and the Denmark goalkeeper was called into action again soon after to push away substitute Jack Grealish's powerful strike.
Schmeichel thought he had got the better of Kane again, the Leicester City man keeping out his weak spot-kick after Sterling had been brought down by Joakim Maehle, but the England captain slotted the rebound into an empty net to send Wembley into raptures.