After tying the game with just over four minutes left in the third, Virtanen won it 1:32 into extra time, ripping a wrist shot past Cam Talbot on a two-on-one, a sequence that came after a TJ Brodie turnover.
Calgary iced the far more experienced line-up and it showed in the first 40 minutes. The Flames had the Canucks hemmed in early, reeling off the first 14 shots on goal. The shots were 18-2 after one period and 30-7 after two before Vancouver climbed back into the game with two goals in the third.
Canucks goaltender Richard Bachman played the full game and made 36 stops.
Split squads meet in Victoria
It was one of two split-squad games between the Pacific Division rivals on Monday. The two sides also met in Victoria, B.C.
In that contest, Austin Czarnik scored two goals to lead the Flames to a 4-3 win over the Canucks.
The Flames and Canucks iced split squads in Victoria and Calgary as the teams look to settle their rosters for the coming NHL season.
The Flames were leading 4-1 late in the third period, but goals by Canucks Josh Teves and Bo Horvat with less than three minutes remaining in regulation time made the game close.
Czarnik, a former Boston Bruin, scored in the first and second periods. His first-period goal was on a goal mouth scramble while the second came from a blast just inside the right face-off circle midway through the second period, beating Canuck goalie Mike DiPietro.
Dillion Dube opened the scoring for the Flames at 5:11 in the first period. Czarnik’s first goal was an unassisted power-play marker at 6:30 in the first.