Rafael Nadal reached the final of the China Open with 6-3 4-6 6-1 victory over Bulgarian Grigor Dimitrov.
Spanish world number one Nadal, who is chasing a sixth title this season, eased through the first set before twice losing his serve in the second.
But world number eight Dimitrov, who served 10 aces, lost his way in the final set as Nadal broke three times.
Nadal will face either Australian Nick Krygios or German Alexander Zverev in the final on Sunday.
Dimitrov battled back from a set down to take it to a decider but as he began to tire, his first-serve percentage slipped and 16-time Grand Slam champion Nadal stepped up a gear.