Andrey Rublev moved into his third Masters final after fighting back from a set down in Monte Carlo to beat American Taylor Fritz 5-7, 6-1, 6-3 on Saturday to set up a showdown with Danish teenager Holger Rune.
Going into the semi-final Fritz had the upper hand with a three-match winning streak against Rublev, but it was the Russian who prevailed in an encounter that was suspended for nearly two hours in the final set due to rain.
"It was really tough against Taylor to whom I lost three times. Very tough for me mentally to play against him," fifth seed Rublev said.
"But I started to feel I will have chances. And then we had a great match and I was able to win."
Fritz started poorly and was broken in the first service game as the American stared quizzically at the surface he seemed to have mastered when knocking out defending champion Stefanos Tsitsipas, who was in the stands to watch the semi-final.
Fritz quickly found himself 2-0 down and even smashed his racquet in frustration, but he turned things around by engaging Rublev in long rallies to set up searing winners to level the set at 3-3 and then again at 5-5 as the pair traded breaks.
Rublev had the opportunity to serve for the set but Fritz converted his fourth consecutive break point to take the opener as his rattled Russian opponent requested a bathroom break before the second set.
But as the sky grew overcast, Rublev was unstoppable in the second set as he fired 11 winners while Fritz lost his range and failed to convert any break points, making 17 unforced errors as the Russian forced the match into a decider.
Fritz had the upper hand in the third, getting the crowd on their feet at one stage after the American won a gruelling point following a 40-shot rally, but Rublev hit straight back to break and level it and then take a 3-2 lead before the rain delay.
It was Rublev who broke in the first game after they returned to hold the advantage while a frustrated Fritz's unforced error count only rose after the restart.
Although Fritz saved three match points on serve, Rublev served to love in the next game, firing his 27th winner to move into the final.
The second semi-final also had a comeback win when 19-year-old Rune defeated Italian Jannik Sinner 1-6, 7-5, 7-5 to move into his second Masters final following his incredible run to the title in Paris last November.
The match was played in tough conditions with wind and a rain break making things difficult, but it was one-way traffic in the opening set as Sinner won five games in a row from 1-1 to wrap it up in 31 minutes.
Rune was leading 3-0 in the second when the match was interrupted by rain before they resumed under the lights.
Sinner struggled after the break until he was backed into a corner at 5-2 and 30-0 down on serve before he sensationally rallied to level the set at 5-5.
Despite Rune losing his composure and taking his frustration out on the chair umpire as well as the crowd with his shushing antics, he managed to take the second set and force a third.
In a tense decider, the two youngsters were determined to hold serve, with Sinner saving five break points until the Italian cracked while serving to stay in the contest.
Rune broke the 21-year-old to claim the win after nearly three hours on court and became the first teenager to reach the tournament's final since Rafa Nadal in 2006.