Spurs came into the semi-final second leg at the Johan Cruyff Arena in Amsterdam trailing 1-0 from last week’s home leg, but no doubt buoyed by Liverpool’s miraculous comeback from 3-0 down to knock out Barcelona 4-3 on aggregate at Anfield on Tuesday.
However, Ajax had only lost one of their 17 games in Europe this season and they were in no mood to make that two against the north Londoners.
And that appeared to be the case when Matthijs De Ligt put them in front on the night early on to extend their advantage, although it left Spurs still needing to score two away goals in order to progress.
But their hopes of an all-Premier League final looked to be in tatters when Hakim Ziyech put Ajax two-up before half-time to stretch the hosts’ aggregate lead to 3-0.
However, Spurs stormed back after the break with Lucas Moura scoring a hat-trick inside the final 35 minutes, including a 96th minute effort, to make it 3-2 on the night and 3-3 on aggregate.
The two away goals means they go up against Liverpool in Madrid on June 1 for what will be only the third all-English final in European Cup history.
Tottenham made two changes from the side that lost 1-0 at Bournemouth on Saturday as Victor Wanyama came in for Eric Dier and Jan Vertonghen replaced Davinson Sanchez in defence.
Lasse Schone and David Neres came in for Klaas-Jan Huntelaar and Rasmus Nissen as Ajax boasted two changes from the starting line-up for their 4-0 Dutch Cup final win against Willem II on Sunday.
Ajax started brightly as they seemed keen to try and get the job done early with Hugo Lloris needing to be alert to tip away a Dusan Tadic effort from the corner of the box in the fifth minute.
However, the hosts did take the lead from the resulting corner, which was played into the area by Schone, when De Ligt got away from Kieran Trippier and outjumped Dele Alli to power in a header past Lloris from eight yards.
Spurs almost grabbed a lifeline two minutes later when Heung-Min Son raced away down the left and hit an ambitious effort from an acute angle which rebounded off the post and Christian Eriksen was unable to turn in the rebound.
The visitors continued to look lively with Son again going close in the 25th minute as he picked up a pass from Alli and hit a left-foot strike from 20 yards which Andre Onana tipped away from his goal.
Two minutes later Eriksen was teed up by Moura just inside the box, but the Dane’s goalbound the effort was straight down the throat of Onana.
Tadic then tried his luck at the other end after gaining a yard on Toby Alderweireld inside the area, but watched as his low left-footed effort whistled inches wide of the far post.
Despite some bright, positive play by Spurs, it was Ajax who scored the next goal of the tie on 35 minutes when Tadic pulled the ball back into the path of Ziyech from the left side of the area and the Moroccan fired in a first-time left-foot effort past Lloris from 15 yards.
Striker Fernando Llorente was thrown on in place of midfielder, Wanyama, at the interval as Mauricio Pochettino was clearly in no mood to give up on Spurs’ dream of reaching the final.
And, after Alli almost pulled a goal back on 53 minutes when he met an Eriksen cross at the back post and forced a fine reflex save from Onana, Spurs did get one back two minutes later.
Moura took over possession from Alli before skipping past Schone inside the area and finishing well past Onana from 12 yards.
Spurs’ hope turned into a real belief that they could win the tie when they made it 2-2 on the night four minutes later as Onana pulled off a superb save to somehow prevent Llorente from scoring a tap-in, but the rebound fell to Moura who turned and squeezed his shot past De Ligt on the line from 10 yards.
Ajax were visibly rattled by Spurs’ second goal, although they did respond well with Daley Blind hitting a volley just over Lloris’ goal on 61 minutes, before Ziyech hit a left-foot effort inches wide moments later.
With Spurs continuing to throw men forwards in search of a third goal, it did leave them open at the back and Lloris had to get down to beat the ball away from a dangerous De Ligt cross-shot from the right of the area on 72 minutes.
Ziyech went even closer for the hosts in the 80th minute when he looked to find the far corner from 20 yards, but watched as the ball rebounded off the upright with Lloris beaten.
Spurs continued to press for that elusive goal with Vertonghen getting up to meet an Eriksen corner only to send his header against the crossbar from six yards, before Joel Veltman hacked the rebound off the line.
Ajax still looked to break when the opportunity arose and they almost wrapped up the win in the third minute of stoppage time, but Lloris pulled off a fine save to deny Ziyech a second goal of the game.
But, after the heroics Liverpool performed 24 hours earlier, Spurs proved lightning can strike twice when Moura was stretching to divert the ball into the bottom corner of the net with virtually the last kick of the game.