Hurkacz rallies fights off Ruud in Montreal to face Carreno Busta in final
Hurkacz raced out to a 3-0 lead in the first set before Ruud regrouped, delivering a spinning, 97-mile-per-hour forehand winner to secure the break and a 6-5 lead.
An unreturnable serve in the next game secured the set for the Norwegian, who threatened to run away with the match when he broke the Pole to open the second set.
But Hurkacz responded with a break of his own and an emphatic overhead winner to take a 4-2 advantage and he levelled the contest at a set apiece with an exquisite drop shot.
In the first game of the decider, Ruud squandered a 40-0 lead and was ultimately broken, which shifted momentum firmly in Hurkacz's favour.
The match felt all but over when Hurkacz smashed a backhand crosscourt winner to go up a double break, pumping his fist in celebration.
"Casper was playing really well. He was the better player for the first half of the match," Hurkacz told reporters.
"I was just searching for opportunities, just trying to take every single opportunity to get ahead in the rally and make him uncomfortable. Obviously serve helped at the end."
Hurkacz has come out on the winning side in five of his six career finals appearances.
"I was fortunate to win the first few finals. But tomorrow is going to be new match. It's going to be a very tricky one and tough one," he said.
Hurkacz will face Spaniard Pablo Carreno Busta(31) in Sunday's final of the Masters 1000 tournament in Montreal.