Hubert Hurkacz shrugged off a slow start to upset fourth seed Casper Ruud on Saturday and book a title clash with Pablo Carreno Busta at the ATP Montreal Masters.
Poland's Eighth-seeded Hurkacz needed two hours to claim a 5-7, 6-3, 6-2 victory over his Norwegian opponent, who had dropped just one set all week.
But his workload was minor compared to that of unseeded Spaniard Carreno Busta, who needed three hours to hold off Briton Dan Evans 7-5, 6-7 (7/9), 6-2.
Carreno Busta had a match point in the second set tie-breaker but couldn't close out victory for another 50 minutes, finally sprinting away as he won the last dozen points of the match.
Evans sent over his sixth double-fault of a long evening to surrender the contest.
Carreno Busta reached his first Masters final, where he'll be vying to become the first unseeded Canadian champion since Argentina's Guillermo Canas in 2002.
The last player ranked outside the top eight to win the Canadian crown was Jo-Wilfried Tsonga in 2014, when the men played in Toronto.
This year, Ruud was the highest-seeded player to make it to the semi-finals, after world number one Daniil Medvedev, second seeded Spaniard Carlos Alcaraz and third-seeded Stefanos Tsitsipas of Greece all fell in the second round.
Carreno Busta fired 45 winners, but said he was pleased to get through despite not playing his best tennis.
"It's important to win these kind of matches, I'm so happy to be in the final," he said.
"Suddenly this week, my level has been unbelievable."
Against Ruud, Hurkacz finished with 47 winners - including 18 aces - and 19 unforced errors, advancing on his second match point.
"I was just trying to stay in the match, he was better for the first set and a half," Hurkacz said. "I just had to hold on and fight."
Hurkacz has gone to three sets in each of his matches this week, but said he wasn't feeling any physical toll.
"I feel good, I have energy," he said. "So far so good," he said.
Ruud and Hurkacz traded early breaks, but the Norwegian gained the edge in the first set, winning it on another break of serve.
He then inflicted further punishment by breaking Hurkacz to love in the opening game of the second as he tried to set a tone for the remainder of the match.
But Hurkacz struck back with an immediate break and carried on to level the match at a set apiece.
Hurkacz got away quickly in the deciding set, grabbing a 4-1 lead with two quick breaks of serve before closing out the comeback triumph.
He avenged a loss to Ruud in the fourth round at Roland Garros two months ago.
"I was just staying aggressive, searching for opportunities, just trying to take every single chance to get ahead in the rally and make him uncomfortable," Hurkacz said.
Hurkacz has won his first five ATP finals - including the Miami Masters in April - and is keen to carry on with his string of victories.
"I just try to compete as hard as I can, be as well-prepared [as possible].
"I was fortunate to win the first few finals. But tomorrow is a new match. It's going to be a very tricky one."