Dominic Thiem defeated Kevin Anderson in straight sets to reach the Madrid Open final for the second year in succession.
The 24-year-old Austrian hit 16 winners en route to a 6-4 6-2 victory over his South African opponent.
Fifth seed Thiem had ended Rafael Nadal's 21-match unbeaten run on clay in the quarter-finals.
He will play the winner of the semi-final between Denis Shapovalov and Alexander Zverev in Sunday's final.
Thiem - who is chasing his first Masters title - lost in straight sets to Spaniard Nadal in the final 12 months ago.