Carlos Alcaraz continued his impressive rise by shaking off injury to beat Rafael Nadal and set up a Madrid Open semi-final against Novak Djokovic.
The 19-year-old Spaniard produced some superb hitting to beat five-time champion Nadal 6-2 1-6 6-3.
Alcaraz was struggling to move after falling and injuring his right ankle in the second set but managed to regroup to close out a stunning win.
World number one Djokovic earlier beat Hubert Hurkacz 6-3 6-4.
Alcaraz has often been compared to Nadal during his meteoric rise, which has seen him win the Miami Open and break into the top 10 of the world rankings.
However, this is the first time in three meetings that Alcaraz has beaten the 21-time Grand Slam champion.
Watched on by a number of Real Madrid players after Nadal attended their Champions League semi-final, Alcaraz produced a blistering first-set performance.
The two traded breaks before Alcaraz reeled off five of the final six games, often out-hitting Nadal and out-foxing him with drop shots.
After saving three break points early in the second set Alcaraz fell heavily while sliding for a forehand and received a medical time out to get the injury taped up.
However, he was visibly struggling to put weight on his right foot which affected his serve, and Nadal duly broke and won four games in a row to force the third set.
Alcaraz left the court at the end of the second set and then returned with more of his form from the first set, breaking Nadal to love to get a 3-1 lead.
He then sealed the game in style, whipping a forehand past Nadal into the corner of the court before turning to face his box in disbelief.
He shared a warm handshake with Nadal at the net before writing 'que ha pasado' - 'what happened?' - on the camera.
It is just Nadal's second defeat of the year, with the Spaniard currently making his return from a rib injury.
Alcaraz will now face three-time champion Djokovic, who has reached the semi-finals of the tournament for a seventh time.
Serbia's Djokovic did not face a break point during his 78-minute victory over Poland's Hurkacz.
It is the 72nd time Djokovic has reached the semi-finals of a Masters 1000 tournament. Only Nadal, with 76, has reached the last four more often.
Djokovic reached his first final of the season at the Serbia Open in April but lost to Andrey Rublev.
Rublev takes on Stefanos Tsitsipas later in Madrid, before Felix Auger-Aliassime faces defending champion Alexander Zverev.
Latest Stories
-
Zimbabwe bans police from using mobile phones while on duty
25 mins -
Killers of Ugandan Olympian sentenced to 35 years
37 mins -
Elon Musk to spend election night with Donald Trump
41 mins -
Accusations fly in Spain over who is to blame for flood disaster
49 mins -
UCL: Real Madrid lose to AC Milan in second straight home defeat
51 mins -
Queen Camilla cancels events due to chest infection
1 hour -
Economy is growing below potential – IEA
1 hour -
UCL: Gyokeres hat-trick as Amorim’s Sporting thrash Man City
1 hour -
Equatorial Guinea VP warns against office sex after viral videos
1 hour -
Netflix Europe offices raided in tax fraud probe
1 hour -
UCL: Diaz nets hattrick as Liverpool beat Leverkusen
1 hour -
Israel PM Netanyahu fires defence minister Gallant
2 hours -
From Arizona to Pennsylvania, Americans embrace calm before election’s storm
2 hours -
Sam Jonah calls for urgent action against ‘pervasive’ corruption in Ghana
2 hours -
‘Pawn’ movie premiere ends with great reviews
2 hours