Roger Federer will face Romanian qualifier Marius Copil in the final of the Swiss Indoors in Basel after storming past seventh seed Daniil Medvedev 6-1, 6-4 on Saturday.
Copil, the world number 93, stunned second seed Alexander Zverev of Germany 6-3, 6-7 (6) 6-4 in the day's other semifinal.
Federer was pushed to three sets by Medvedev when the two met at the Shanghai Masters earlier this month, but there was never any danger of the Swiss suffering a repeat.
The 37-year-old saved a break point in the first game and, his nerves settled, set about the task of outclassing his opponent with clinical precision to reach his 14th Basel final.
After tamely surrendering the first set in 20 minutes, Medvedev found himself trailing 1-5 in the second but managed to fend off a match point and hold serve.
The Russian, who has won titles in Tokyo, Winston-Salem and Sydney this season, then broke Federer to love to keep his hopes of an unlikely comeback alive but the Swiss snuffed them out in his next service game, wrapping up the win in 65 minutes.
Standing between Federer and what would be his ninth career title at his hometown tournament is the unfancied Copil, who beat world number six Marin Cilic earlier in the week.
The 28-year-old Romanian turned in a gritty performance against world number five Zverev, serving and volleying and mixing up his shots from behind the baseline to prevent the German from finding any sort of rhythm.
He sent down 26 aces and won 85 percent of his first serve points, including 17 of 18 in the final set, as he ground out the victory in two hours and 30 minutes.
"It's been an unbelievable week for me so far," Copil said. "Before coming here, I was fighting and struggling to have the (ranking) points to finish in the top 100, and that was in my mind."
Nishikor in final
Kei Nishikori will have a chance to win his first ATP title in over two years on Sunday after beating qualifier Mikhail Kukushkin 6-4, 6-3 to reach the Vienna Open final.
The Japanese, ranked 11th in the world, will face this year's Wimbledon runner-up Kevin Anderson after the South African beat Spaniard Fernando Verdasco 6-3, 3-6, 6-4.