World number one Rafael Nadal will play Australian Nick Kyrgios in the China Open final on Sunday.
Spaniard Nadal, who is chasing a sixth title this season, beat Bulgarian Grigor Dimitrov 6-3 4-6 6-1.
World number eight Dimitrov battled back from a set down to force a decider, but lost his way as 31-year-old Nadal broke three times.
Kyrgios, who did not lose a game on his serve, saw off German Alexander Zverev 6-3 7-5 to reach the final in Beijing.
The unpredictable 22-year-old goes into the match against Nadal as one of the few men to beat the world number one in 2017, having knocked him out of the quarter-finals of the Cincinnati Masters.
And Kyrgios secured a fine win over rising star Zverev to seal his place.
Zverev, 20, served two crucial double faults at 5-5 in the final set, handing Krygios the break, before the world number 19 dispatched his final service game in style.
German Zverev, who was going for a tour-leading sixth title in 2017, is the only player alongside Nadal and Roger Federer to have qualified for November’s ATP Tour Finals in London.
Mannarino to face Goffin in Japan
Meanwhile at the Japan Open in Tokyo, France’s Adrian Mannarino will play Belgium’s David Goffin in Sunday’s final as he attempts to secure his first ATP World Tour title.
Mannarino produced the biggest win of his career to beat top-seeded Croatian Martin Cilic 6-7 (5-7) 6-4 6-0 in the semi-final.
David Goffin reached his second successive final in Tokyo on Saturday with a hard-fought victory 7-6 (7-3), 7-6 (8-6) over Argentine Diego Schwartzman.
The result moves the Belgian into the final automatic qualification spot for next month’s finals in London, with five places left up for grabs.