Germany's Alexander Zverev defeated Dominic Thiem 6-3 6-4 to reach his second Madrid Open final.
It was a repeat of the 2018 final in the Spanish capital, which Zverev won.
Zverev, who beat five-time champion Rafa Nadal in Friday's quarter-final, will face either Casper Ruud or Matteo Berrettini in Sunday's final.
The 24-year-old started strongly and saved a break point to lead 2-1 before breaking in the following game at the fourth opportunity.
He only dropped three more points on serve as he closed out the opening set, before piling the pressure on Thiem early in the second.