Dominic Thiem followed up his sensational victory over world No 1 Rafael Nadal by easing past Kevin Anderson 6-4, 6-2 on Saturday to reach the Madrid Masters final.
The fifth-seeded Austrian, who ended Nadal's 21-match and 50-set winning streak on clay on Friday, needed 85 minutes to dispose of his South African opponent, seeded sixth.
Thiem, the runner-up to Nadal in the 2017 Madrid final and still chasing a first Masters title, will face German second seed Alexander Zverev, who swept past Canadian teenager Denis Shapovalov 6-4, 6-1, in Sunday's championship match.
"I will try everything on Sunday. A Masters 1000 title would mean a lot to me because it's obviously really tough to win one," Thiem said.
"To be honest, I thought also myself that I was pretty far away before this week started. Now I'm in the finals again, which is amazing for me."
Thiem is playing in just his third tournament since a right ankle fracture suffered at Indian Wells while US Open runner-up Anderson was competing in his first semi-final at Masters level, ending a run of 10 prior losses in quarter-finals at this level.
The 24-year-old Austrian broke Anderson in a nine-minute opening game which was enough to secure the first set in 49 minutes. A double fault gave Thiem the decisive break to open the second set and he broke again for a 4-1 lead before securing victory with a service winner as he reached his 15th career final and fifth in a row on clay.
Thiem said he is feeling stronger after his ankle injury as he builds up to the French Open later this month and has tried to forget recent losses to Nadal in Monte Carlo and his shock exit at the hands of Greek teenager Stefanos Tsitsipas in Barcelona.
"There was a little bit of lack of confidence in Monte Carlo and Barcelona," he said. "It took me a while until I was moving my best again, until I was playing my best again. I think the level of my game increased especially in this week."
Victorious Rafael Nadal gives beaten Novak Novak Djokovic his backing after Spain pain
Madrid Open talking points: Djokovic and Sharapova show encouraging signs of form
Djokovic admits 'confidence is not at the highest level' as return continues in Madrid
Zverev: Earliest I've finished all week'
Zverev, 21, took less than an hour to see off Shapovalov, 19, the youngest player to reach the semi-finals in Madrid. The beanpole German will be seeking a third Masters title after wins in Rome and Montreal in 2017.
"This is the earliest I've finished all week," Zverev joked. "Now I don't know how to do for the next four hours."
Coming off a successful title defence in Munich last week, Zverev had faced just one break point all week before Saturday and was never troubled by Shapovalov who will at least have the consolation of breaking the world's top 30 for the first time next week.
Shapovalov had lost to Zverev in the Montreal Masters semi-finals last year and before this week had never won a main tour clay-court match.
On Saturday, his challenge quickly unravelled when Zverev put together a seven-game run from 3-4 down in the first set to a 4-0 advantage in the second.
Kvitova wins women's title
Czech 10th seed Petra Kvitova won the WTA title for the third time on Saturday with a marathon 7-6, 4-6, 6-3 victory over Kiki Bertens of the Netherlands.
Kvitova, who was also the champion in Madrid in 2011 and 2015, has now claimed four titles in 2018 after triumphs in St Petersburg, Doha and last weekend in Prague.
Victory, on a chilly, damp night in the Spanish capital, took Kvitova two hours and 51 minutes against a gutsy, unseeded Bertens who had knocked out former world No 1s Maria Sharapova and Caroline Wozniacki on her way to the championship match.
In a big-hitting, roller-coaster of a final, Kvitova claimed her 24th career title on the back of 39 winners and 58 unforced errors.
Bertens, who had won five of her previous six finals, including on clay in Charleston earlier this year, led 4-2 with a break in the first set before Kvitova roared back, retrieving the break in the next game.
The Czech claimed the 74-minute opener on a third set point.
Bertens carved out the only break in the seventh game of the second set to level the contest.
She then fell 2-4 down in the decider before bravely hitting straight back but in a thrilling finale, Kvitova dug deep to break again for 5-3 before a love service hold gave her victory and an 11th successive match win.