Norrie was too solid for the young Canadian as he won the battle of the left-handers 7-5 6-3 under murky London skies.
Big-serving Italian Berrettini, playing in the pre-Wimbledon tournament for the first time, had earlier overpowered Australian Alex De Minaur 6-4 6-4.
Norrie will be Berrettini's third British opponent this week. The Italian has already beaten five-times champion Andy Murray and Dan Evans on his way to the final.
"That was the goal of the week [making the final], and now I have one more step. It is a great achievement, especially for the history of this tournament. I am really happy because to beat Alex today I had to play my best tennis," Berrettini said.
Berrettini again used his serve and sledgehammer forehand to great effect against the hustling De Minaur.
He broke serve early in the first set and again in the ninth game of the second before sealing the win.
The 25-year-old Norrie has put together a phenomenal year with his record now standing at 29-12.
Second seed Shapovalov had earlier finished off American Frances Tiafoe after their quarterfinal had been held over because of rain the previous evening.
Norrie trailed by a break in the opening set but hit back superbly to set up a chance to become only the second British player to win the title in the professional era.
"I think I played very, very well today, I was extremely clutch on some of the big points," Norrie said after reaching his third ATP final of the season.
"I am so pleased to be through to the final here, I can't even describe it. It has not really sunk in yet. It is nice to get over the line there, and all credit to Denis, it was a tough match."