Kiefer Sherwood opened the scoring at the 14:53 mark of the first period, and that 1-0 scoreline held through the end of the opening frame with Vancouver owning an 8-6 edge in shots on goal.
The middle stanza offered no offence, but not for a lack of trying by the Flames. Blake Coleman was stymied on a short-handed breakaway in the opening minute,Frost's partial break down the left wing resulted in another Demko save near the midway mark, then in the waning moments of the period, Yegor Sharangovich was robbed by the Canucks netminder from the low slot after a nifty net-front setup by Adam Klapka.
Vancouver added to their lead in the third. Filip Chytil turned in his own rebound after his initial shot struck Flames defenceman Kevin Bahl in the head.
Chytil capitalized again six minutes later on a breakaway, before Jonathan Lekkermaki one-timed a fourth Canucks marker in from the right circle.
Frost got a goal back for the guests with just under seven minutes to play, sending a low shot through from the right side with linemate Joel Farabee providing a screen in front of Demko.
Brock Boeser rounded out the scoring with 2:54 to play.