Rafael Nadal secured his place in the Italian Open final with a 6-4 6-4 win over American Reilly Opelka.
At 2-1 down in the first set Nadal had to save four break points, but he then broke his big-hitting rival in the next game before going on to claim the set.
One break of serve was also enough for the 34-year-old Spaniard in the second set as he secured victory in Rome.
Nadal will play world number one Novak Djokovic, who beat Italian Lorenzo Sonego 6-3 6-7 (5-7) 6-2, in the final on Sunday, May 16.
Djokovic was on court twice on Saturday as he came from a set down to beat Greece’s Stefanos Tsitsipas in their rain-affected quarter-final before playing Sonego after Nadal’s match.
Against Tsitsipas, the Serb trailed 6-4 2-1 when the match was suspended because of rain on Friday, but he broke serve twice when it resumed on Saturday to force a decider.
He then twice recovered from a break down in a see-saw final set to win 4-6 7-5 7-5 and reach the last four.
Sonego had also been in action on Saturday as he beat Andrey Rublev 3-6 6-4 6-3 to set up the semi-final with Djokovic.
Nevertheless, the pair produced an enthralling match lasting two hours and 44 minutes.
Djokovic had served for the match at 6-5 up in the second set against 26-year-old Sonego only to be broken.
He was then 3-0 up in the tie-break but lost 7-5 as an inspired Sonego levelled after a second set which lasted 91 minutes.
However, Djokovic reasserted himself in the third before eventually prevailing to set up a sixth Italian Open final against Nadal.
“Rome is such an important tournament for me. To be in the final again is so important for me,” said Nadal.
“In terms of preparation for [the French Open at] Roland Garros, I consider the job done. Tomorrow is not at all preparation. It’s a final, an important one, and I want to be competitive.”