The Canucks were trailing 3-1 early the third period when Jannik Hansen cut the deficit with a goal 5 minutes into the stanza after a Flames turnover.
Calgary again coughed up the puck as their own blue 4 1/2 minutes later and Santorelli put home a wrist shot for the equalizer, and the Canucks grabbed a 4-3 lead when Dale Weise scored on a Brad Richardson pass from behind the net with 3:54 remaining.
The Flames' David Jones, however, forced overtime when he poked home a loose puck with 19 seconds to go in regulation.
Then in the extra period, Santorelli struck again, deflecting home a Kevin Bieksa shot for the game-winner.
Rookie Eddie Lack, making his first NHL start, stopped 32-of-36 shots for the Canucks, who notched their first win after dropping the season opener.
Joey MacDonald made 23 saves for the Flames, who fell to 1-0-1.