The No.26 seed from Poland knocked off in-form No.4 seed Rublev 6-3 6-4 to book a spot in Monday's (AEDT) final, where he will play teenage No.21 seed Jannik Sinner, who defeated Roberto Bautista Agut.
The 24-year-old from Wroclaw had beaten No.2 seed Stefanos Tsitsipas in the quarter-finals and continued that strong form by never allowing Russian Rublev to settle into his game.
"It means a lot, especially after winning a title at the beginning of the year, I had a couple of rough matches," Hurkacz said after the match, referring to his January win at the Delray Beach Open in Florida.
"I’m so happy that I came over and I was still trying to improve my game and trying to be a better player. This is really huge for me."
The 23-year-old Russian had won 16 matches this calendar year including taking out last month's Rotterdam Open.
Rublev had also not lost a set all tournament and only been broken twice, yet Hurkacz broke his serve three times.
The Pole also hit 25 winners and showed determination under pressure, when Rublev had a break point at 5-4 in the second set, before saving it in an epic rally and winning the game to secure the match.
World No.8 Rublev said: "Today was not my day. Hurkacz played really well and he deserved to win … Now it's time to go back to work hard to be ready for the clay season.
"It’s [been a] great week for me. I did my first semis [at an ATP Masters 1000]. I'm playing really consistent. Every week I go deep in the tournament."
Sinner, 19, won a three-set match against Bautista Agut to book his spot in the decider.
The young Italian world No.31 and Hurkacz know each other well.
"We played doubles together last week in Dubai,"Hurkacz said. "Now we’re playing in the final of a Masters 1000 event, so it’s going to be a fun match."