Germany's Alexander Zverev beat Rafael Nadal for the first time on clay to reach his second Madrid Open semi-final.
Fifth seed Zverev, 24, came back from 4-2 down in the opening set to defeat the five-time Madrid champion 6-4 6-4.
It was his third straight victory over the 34-year-old.
Zverev will face third seed Dominic Thiem in the last four after the Austrian defeated American John Isner 3-6 6-3 6-4.
The match will be a repeat of last year's US Open final, which was won by Thiem.
"It's definitely one of the biggest wins of my career so far, especially on clay against Rafa," said Zverev.
"It is the toughest thing to do in our sport. Beating him in his house, in Spain, is incredible but the tournament is not over yet."
Nadal's defeat puts a question over his form ahead of the French Open, which starts on 30 May - a tournament which he has won 13 times.
He was beaten by world number eight Andrey Rublev in the quarter-finals in Monte Carlo last month and although he won in Barcelona, had to save a championship point to beat Stefanos Tsitsipas in the final.
It started well for Nadal when he broke Zverev to love to lead 4-2 in the first set with the German not helping himself with a double fault.
But the world number five immediately hit back and then pulled away with four straight games.
A forehand down the line put Zverev up another break midway through the second set and while Nadal resisted more pressure in the seventh game to hold, Zverev served out an impressive victory after an hour and 44 minutes.