Thatcher Demko made 17 saves for the Canucks, who finished the preseason 2-3-1.
Nazem Kadri scored, and Jacob Markstrom made 28 saves for the Flames, who went 4-3-1.
Tyler Myers gave Vancouver a 1-0 lead 1:09 into the first period when he scored from the high slot.
Kadri tied it 1-1 at 15:18, poking in a loose puck.
Teddy Blueger scored on a breakaway at 13:55 of the second period to give the Canucks a 2-1 lead.
Di Giuseppe made it 3-1 with 47 seconds left in the second when an errant pass caromed to him alone in front.
A moment of silence was held before the game in honor of Chris Snow. The Flames vice president of hockey operations and assistant general manager died Sept. 30 from amyotrophic lateral sclerosis (ALS) at age 42.