Norrie, who had beaten number four seed Denis Shapovalov in the last eight, was broken in the fourth game of the opening set as Rublev moved 4-1 ahead.
Although Norrie managed to hold his next couple of service games, the Russian world number five kept the pressure on to close out the opening set 6-3 in 35 minutes at the sunny Barnes Stadium.
Norrie, who won his first ATP Tour title in Los Cabos earlier this year, saved three break points in the third game of the second set which proved a turning point.
The world number 28 dug in to put pressure on Rublev’s serve, which he broke at 3-1 after the Russian sent a backhand volley just wide.
With the pressure cranking up, Rublev – yet to drop a set so far in the tournament – lost his cool in the California sun, hitting his leg in frustration as Norrie held and then opened up a 5-2 lead.
Norrie, bidding to reach a fifth final in 2021, remained on the front foot to force two set-point opportunities in the next game before the Russian eventually served out.
The British number two, though, regrouped to save two break points on his next serve and secure the set 6-3, levelling the match.
An early break and hold in the decider saw Norrie move 3-1 ahead and then to the brink of victory at 5-3.
Rublev pulled a game back but it was only delaying matters as Norrie closed out a hard-earned win to book his place in the final against either number two seed Casper Ruud or Grigor Dimitrov.
Speaking in an on-court interview broadcast by Amazon Prime Video, Norrie said: “What an incredible match.
“All credit to Andrey because he came out firing and played some big tennis at the beginning and then I managed to weather the storm.
“This is such a big win for me, I am good friends with Andrey so it is not easy playing against him. It is definitely a match I will remember for a long time.”
“I will try and rest up to get ready (for the final), the tournament is real tough.”