Rafael Nadal cruised past Stan Wawrinka 6-1 6-2 in the last Madrid Open quarter-final to set up a clash with Stefanos Tsitsipas, who edged Alexander Zverev 7-5 3-6 6-2, in the other semi.
In earlier action, Dominic Thiem edged past Roger Federer 3-6 7-6 6-4 to end the Swiss veteran's clay season comeback and reach the Madrid Open semi-finals
Federer raced into a 4-1 lead inside 15 minutes as he broke the 220 kilometres-per-hour barrier with some powerful serving.
He showed the same drive that saw him bagel Gael Monfils in the first set on Thursday.
The Frenchman had then battled back to force a thrilling tiebreak finale in the third set, and Thiem upped his game significantly too, taking the second set to the wire.
Thiem broke to go 2-1 in the third. Federer broke back to pull level at 4-4 but the Austrian broke again in the next game, sealing it with a sensational forehand over his opponent before serving out the match.
Second seeded Spaniard Nadal reached the semi-finals for the 11th time when Wawrinka's attempted backhand return hit the net.
Tsitsipas played a steady game to beat last year's winner Zverev, who made 14 unforced errors in the opening set.
Zverev roared back in the second but double faulted twice serving at 1-2 down in the decisive third, with Tsitsipas breaking and striding to victory in the battle between two of the sport's young talents.