Carlos Alcaraz withstood an injury scare and a fightback from Rafael Nadal to beat his countryman and set up a semi-final with Novak Djokovic at the Madrid Open.
The 19-year-old had lost his previous two encounters with Nadal, but he came out on top 6-2 1-6 6-3 in Friday's match in the Spanish capital.
It made him the first teenager to beat the record 21-time grand slam winner on clay on the ATP Tour.
Alcaraz has now won his last five matches against top-10 opponents and will next take on world number one Djokovic, who earlier defeated Hubert Hurkacz 6-3 6-4, for a place in Sunday's final.
Nadal, who had won his previous 25 matches against fellow Spaniards, struggled to handle the intensity of his opponent's game in a first set that saw him lose serve three times.
Alcaraz struck 19 winners in the opening set in total and took three games in a row to edge ahead, though the youngster lost his footing at 1-1 in the second set and required a medical time-out.
After having his ankle strapped up, Alcaraz struggled to match his levels from the first set and Nadal – competing in a record-extending 99th Masters 1000 quarter-final – went through the gears, taking 20 of the final 22 points to level the contest.
That gave Nadal momentum heading into the deciding set, yet it was Alcaraz who earned the only break of serve in the fourth game with some powerful hitting before seeing out a statement victory.