Novak Djokovic was made to work hard by Casper Ruud in blustery conditions before he got past the unseeded Norwegian 7-5 6-3 on Sunday to reach the Italian Open final.
The Serbian had to save two set-points in the first set before finding his groove to reach his 10th title clash in Rome and remain on course to win his 36th ATP Masters 1000 crown.
The win helped the world number one to overtake Rafa Nadal on the all-time list.
Defending champion Nadal had crashed out of the tournament in the quarter-finals on Saturday after a straight-sets defeat by Diego Schwartzman.
“It was a tough two-setter today (Sunday). It was over two hours for two sets,” said Djokovic, who equalled Nadal’s tally of Masters 1000 titles by winning the Western & Southern Open last month.
“I definitely had to work hard for most of the points and it was really anybody’s game in the first set.
“It was probably the windiest day since we arrived in Rome and it was quite tough to handle that.
“But the second set was much better. I got used to it and started swinging through the ball better.”
Argentine Schwartzman took on Canadian young gun Denis Shapovalov in the second semi-final later on Sunday, with the winner meeting Djokovic on Monday.
Djokovic started sluggishly and trailed 4-5 in the opening set, but he broke back and won the final three games to take the early advantage in the contest.
The Serb, who fired 12 aces in the match, served with much better accuracy in the second set and broke to go ahead 3-2 before closing out in style.