Ajax's 19-year-old captain Matthijs de Ligt headed the winner from the corner in the 67th minute of the quarter-final second leg as the Dutch side came from behind to clinch a 3-2 aggregate win and reach the last four for the first time since 1996/97.
Cristiano Ronaldo, aiming for a fourth successive Champions League title after winning the last three with Real Madrid, put Juventus ahead in the 28th minute with a typically emphatic header, his sixth goal of the competition.
But Donny van de Beek levelled six minutes later before the visitors swept Juventus aside in the second half with wave after wave of attacks as they earned a semi-final against Manchester City or Tottenham Hotspur.
Ajax goalkeeper Andre Onana gave his team an early scare when his clearance was charged down by Emre Can but the rebound flew wide.
Ajax settled well after that but, despite not playing well, Juventus went ahead when Ronaldo got away from the defenders to score the 126th Champions League goal of his career.
There was a long delay for the VAR review, the referee eventually going to the pitchside monitor with the ball back on the centre circle ready for the re-start, before the goal was confirmed.
Ajax kept their cool and took six minutes to level, helped by a somewhat lucky break.
Hakim Ziyech's long-range shot hit a defender and fell perfectly for Van de Beek who, unmarked and onside, slotted the ball calmly past Wojciech Szczesny, and then had to wait for another long VAR check before the goal was confirmed.
Ajax took complete control in the second half and their geometric passing repeatedly opened up the Juventus defence, which sorely missed injured veteran Giorgio Chiellini.
Szczesny made one-handed save from Ziyech after Juventus were opened up again and then turned Van de Beek's curling shot over for a corner.
Juventus were rocking but, ironically, Ajax's winner came from an old-fashioned header as De Ligt outjumped two defenders to score.
Ajax had chances for further goals and Ronaldo's frustration boiled over in stoppage time when he was booked for a lunging tackle from behind near the centre circle.
Messi fires Barcelona into semis
In the night's other quarter-final tie, Messi produced another masterful Champions League performance to knock out Manchester United and fire Barcelona into the semi-finals for the first time in four years, scoring twice in a 3-0 home win.
Barca, who toyed with United for the majority of the encounter, sealed a 4-0 aggregate victory and will meet either Porto or Liverpool in the last four.
Messi had failed to score in his last 12 quarter-final appearances, but he settled his side's nerves after a bright start from United, collecting a misplaced pass from Ashley Young and curling into the bottom corner in the 16th minute.
The Argentine then pounced on another lapse from United's defence four minutes later to win back possession high up the pitch and fire a shot from outside the box, which squirmed under visiting keeper David de Gea.
Philippe Coutinho finished off a therapeutic win for the Catalans, after three quarter-final failures in a row, by curling into the top corner in the second half.
United coach Ole Gunnar Solskjaer’s greatest night as a player came at the Nou Camp, but after losing the first leg at Old Trafford 1-0, his team needed to become the first side to win a European game there in 31 matches in order to progress.
They clung to the hope of another famous European escape act after last month’s miraculous 3-1 win at Paris St Germain and made a strong start as Marcus Rashford hit the crossbar in the opening stages.
They also survived a scare when a penalty awarded to Barca for an apparent foul by Fred on Ivan Rakitic was overturned after a VAR review.
Yet their hopes were soon extinguished when Young was caught in possession on the left wing and Messi seized the ball, scurrying across the pitch and holding off more United defenders before bending a superb shot past the outstretched De Gea.
The Spanish goalkeeper was left embarrassed for Messi’s second goal as the Argentine's tame shot crept under his body.
United looked down and out and Messi nearly dealt them further pain before halftime by sparking another quick break, but this time De Gea thwarted the Catalans, pushing away Sergi Roberto’s shot on the goalline.
De Gea was taunted by Barca fans in the second half, which turned into a procession for the home side and the out-of-form Coutinho turned up the party atmosphere with his sensational strike.
The nearest United came to finding the target after the break came when Barca keeper Marc-Andre Ter Stegen turned an Alexis Sanchez header around the post late on.