Stefanos Tsitsipas sank the title hopes of Alexander Zverev as the Greek star edged the Rome edition of their semi-final series on clay this season.
At the Internazionali d'Italia, Tsitsipas scored a 4-6 6-3 6-3 victory over German Zverev to earn a place in Sunday's final.
These two players have now met 12 times in their careers, and Tsitsipas holds an 8-4 head-to-head winning record.
Three of those matches have come at clay-court ATP 1000 tournaments in the past four weeks, with Tsitsipas winning a semi-final on the way to the title in Monte Carlo, then losing to Zverev at the same stage in Madrid.
This latest instalment in Italy was a gripping contest, as the players battled to take on Novak Djokovic or Casper Ruud for the title.
An early break came in the seventh game when, serving at 30-40, Tsitsipas attacked the net but Zverev hit the net cord on his backhand return. The deflection disorientated Tsitsipas slightly and he volleyed wide. One break was enough for the set.
Tsitsipas broke in the second game of the second set, with Zverev serving a double fault at the critical moment, and then got decisively ahead in the fifth game of the decider when Zverev netted on the forehand.
This was a strong win for last year's French Open runner-up, who lost that championship match from two sets up against Djokovic at Roland Garros. It carries Tsitsipas through to his first Internazionali d'Italia final, and a 20th final of his ATP career. He has an 8-11 record in finals to date, and a tour-leading 31 match wins this season.