The 26-year-old Londoner broke Dimitrov at the beginning of both sets at the Indian Wells Tennis Garden to claim his 46th match win of year and set up a title clash with Nikoloz Basilashvili of Georgia.
"It was the biggest match of my career, following on from yesterday, which was the biggest match," Norrie said. "There was even more pressure today. I came out and played really physical. Grigor was maybe a little tired from the other matches, but he fought hard and made it physical at the start of the second set, which wasn't easy," said Norrie.
Dimitrov, who used his slice in earlier victories against world No. 2 Daniil Medvedev of Russia and Hubert Hurkacz of Poland to great effect, found playing the left-handed Norrie a different ballgame.
With his cross-court slice landing directly into Norrie's forehand, Dimitrov was forced to hit much closer to the baseline and to hit a greater percentage of topspin backhands, both riskier prospects that led to more errors.
Norrie notched his 46th match win of the year and is now within reach of his second title of the season to back up his triumph in Los Cabos. "I've been playing a lot of big matches this year, which has helped. I feel like I am used to the big moments and the big matches," Norrie told atptour.com. "I'm feeling more and more comfortable and I feel like I am playing on my terms in key moments."
After a below-par season, Georgia's Nikoloz Basilashvili is one win away from the biggest title of his career after fending off Taylor Fritz of the US in the other semifinals.
The Georgian, who had suffered five first-round losses from six appearances at Masters 1000 level this year heading into Indian Wells, saved three sets points in the first set and all seven break points he faced - including two in the final game - to defeat the 23-year-old American 7-6(5), 6-3 to reach his first final at this level.
The 29-year-old world No. 36 smashed 26 winners against 32 unforced errors.
"It means a lot (to make my first Masters 1000 final) especially at Indian Wells, which people call it like a fifth Grand Slam… to get through so many matches is very important," Basilashvili said. "I'm at the top of my game now and feeling the best.
"This was my first time in a Masters 1000 semifinal so I was a little bit tight. I just tried to get rid of [the tension] as much as I could because if I just focus on my game I can play good tennis."
Basilashvili has won five ATP Tour titles, with his first three coming at the 500 level.