Alexander Zverev avenged his Monte Carlo semi-final loss to Stefanos Tsitsipas, booking his place at the Madrid Open final with a 6-4 3-6 6-2 win on Saturday.
Zverev was dominant on serve, giving up only two break points for the match with a 73 per cent first-serve rate, while winning 40 of a total 48 points on his first serve.
The German will now aim to defend his title in Sunday's final when he faces Carlos Alcaraz, who defeated world number one Novak Djokovic earlier on Saturday.
The second seed will be seeking his sixth ATP 1000 title, with Sunday's final against the home favourite to be his 10th at that level.
"I'm just extremely happy to be in the final here," Zverev said post-match. "I know it's going to be an extremely tough match tomorrow but I hope I can manage to play my best and give myself a chance.
"It's going to be his [Alcaraz] court for the next 15 years probably. It has been Rafa's [Nadal] court for the past 15 years and it's going to be his court for the next 15 years.
"I just hope I can give him some trouble and I hope I can manage to win tomorrow."
Tsitsipas was similarly strong on his first serve but had a much lower rate at only 56 per cent for the match. Zverev simply had more looks at his opponent's second serve, winning 15 points compared to Tsitsipas' eight, but with each holding a 44 per cent success rate.
The defending champion at Caja Magica capitalised when it mattered, though, claiming the opening three games in the deciding set to set up the eventual win.