Jannik Sinner ended his losing streak against Alexander Zverev with a 7-6 (11/9), 5-7, 7-6 (7/4) win on Sunday which took him into the final of the Cincinnati Open.
The world number one had lost four of five previous matches in the series, with his only win coming at Roland Garros four years ago.
The tight victory took more than three hours not including a rain interruption.
The match was paused midway through the first-set tiebreaker for nearly 30 minutes while a shower passed over the area — another episode of the poor weather which has plagued the event in recent days.
Sinner saved two Zverev set points and won the opener on his own third chance, only to fall in the second set as he lost an early break and was broken again in the 12th game as he sent an overhead into the net.
The third set went into a tiebreaker with Sinner taking a 5-2 lead and triumphing on his second match point.
“It was a tough match, a very exciting match,” the Italian said. “We played in different conditions: sunny, rain and then night.
“There was a lot of tension for both of us. I’m very happy with my performance and happy to be in the final.”
Sinner, who won his last title on grass in Halle two months ago, will play a rare Monday final against the winner from Frances Tiafoe and Danish 15th seed Holger Rune.
“I had to play with my gut, I feel that is my strength,” the 23-year-old said. “We had some ups and downs over three hours.”
“I couldn’t have played a better match than this to prepare,” he said, looking ahead to the start of the US Open in eight days.
The player who has suffered recently with a hip problem, illness and the tonsillitis which forced him to skip the Olympics, said he needs to keep up his fitness.
“If I’m going to win bigger matches, I have to be more in shape. on Monday I stayed mentally strong; I’m proud of that.”
Sinner will be playing in his fifth career Masters 1000 final.