Bo Horvat scored the lone marker for the Canucks while Jakob Markstrom made 28 saves for the Canucks.
The Flames avenged Friday's 4-2 setback to the Canucks in which they outshot Vancouver 46-13.
"It's huge," declared Johnson, "We played a good game yesterday and probably deserved better. We just couldn't score on [Ryan] Miller and they got some really lucky bounces.
"Tonight, we just wanted to stick with it and be confident in our game. It was a fun atmosphere out there. It was back-and-fourth and tons of chances both ways and we won the game and that's what's important."
Johnson had to be sharp early, turning aside Loui Eriksson on a breakaway midway through the first period.
The Flames drew first blood at 14:26 of the opening period and then added another strike just 1:03 later.
First, it was Chiasson who redirected a blast from Sean Monahan off an offensive zone faceoff past Markstrom and then Garnet Hathaway centred the puck to Stajan, who tipped it by Markstrom's right pad to give the Flames a 2-0 first-period lead.
The Canucks got on the board and made it 2-1, 3:04 into the second period, when Horvat scooped up the puck behind the Flames goal, wheeled around and fired a shot low to the far side past Johnson.
Megna almost had the equalizer when he grabbed a rebound and attempted to sweep the puck wide on Johnson, but Dougie Hamilton dove across the crease just in time to block the puck and preserve the Flames 2-1 lead.
Johnson slid across the crease to deny Henrik Sedin while the Canucks had a power play late in the third period. Minutes later Johnson stopped Brandon Sutter when he split the Flames' defence and was in all alone but couldn't beat Johnson.
You can see just what a goalie can do," said Frolik. "You saw yesterday, Miller kind of stole their game and [Chad Johnson] was hot today and helped us a lot ... especially in the end.
There was a power play at the end and he made a few big saves there. Sometimes you need saves like that. I'm happy for him and that was a good performance by him."
Frolik put the final nail in the coffin when Matthew Tkachuk spotted him streaking through the neutral zone and feathered a perfect pass to send him in alone. Frolik made no mistake snapping a hard wrist shot past Markstrom