Former champion Alexander Zverev came back from a disastrous start to beat Chile's Alejandro Tabilo 1-6 7-6(4) 6-2 on Friday to reach the Italian Open final.
The German third seed, who won the title in 2017 and reached the final the following year, looked in real danger when 29th seed Tabilo raced away with the opening set.
The 26-year-old, who beat world number one Novak Djokovic in the third round, was playing in his first ATP Masters 1000 semi-final, but did not look fazed as he broke Zverev twice in the first set.
Tabilo won five games in a row in taking the opener, but the second was much closer. The Chilean did force the only break point of the set, but Zverev held and went on to win the tiebreak.
Zverev raised his game in the deciding set, breaking twice, and never looked in danger as Tabilo's challenge faded, and the German reached his first final of the year.
He awaits the winner of Friday's second semi-final between American 14th seed Tommy Paul and another Chilean, 21st seed Nicolas Jarry.

Sabalenka sees off Kasatkina to reach French Open fourth round
Osaka survives three-set scare against teenager Jovic
Cobolli cruises past Tien in straight sets to snap American's winning run
Liverpool sack Slot after underwhelming season
Teen sensation Fonseca comes of age by taming Djokovic at French Open