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.

Dubai named long-term opening host of new beach volleyball championship
Amateur shocks pros for massive payday at 'One Point Slam' before Australian Open
UAE secure AFC U23 Asian Cup quarter-final spot
Ofner's premature celebration costs him Australian Open spot in epic collapse
Semenyo on target again as Man City beat Newcastle in League Cup semi-final