After scoring just once in his first 16 games of the season, Iginla now has five goals in the past four contests.
Jannik Hansen had a goal and an assist for the Canucks (11-6-4), who have lost three of their past four games. Chris Higgins also scored for Vancouver, which beat the L.A. Kings 5-2 one night earlier at home.
Making just his second career NHL start, Danny Taylor stopped 29-of-31 shots he faced to earn his first-ever win.
Roberto Luongo made 21 saves in the Vancouver net in a losing cause.
Due to a snow storm, the Canucks didn't even arrive at the Calgary airport until 3:30 p.m., just 2-1/2 hours before game time.
Nonetheless, it was Vancouver that opened the scoring at 7:49 of the first period when Higgins took a breakaway pass from Hansen and then snapped a shot to the blocker side past Taylor.
The Flames pulled even late in the first when Cammalleri wired a shot from just inside the blue-line past Luongo. The veteran Vancovuer netminder actually got a piece of the puck with his glove hand, but it still managed to sneak past him and into the net.
Early in the second period, Luongo made a great kick save with his left pad to stop a shot off the stick of Sven Baertschi. Seconds later at the other end of the ice, Hansen batted a rebound out of the air and past Taylor to put the Canucks up 2-1.
Stempniak then tied up the game once again when he converted a feed from Matt Stajan at 6:15 of the middle frame.
Iginla's game-winning goal came just one second after a bench-minor penalty to Vancouver expired. Iginla attempted a centring pass to Jiri Hudler who was driving hard to the net and the puck deflected off Canucks defenceman Jason Garrison and past a stunned Luongo.
Cammalleri then added an empty-net goal to seal the victory.
Notes: After being acquired on Thursday in a trade with the Nashville Predators for Joe Piskula, Brian McGratton made his debut on Sunday with the Flames. … McGratton fought Vancouver tough guy Tom Sestito, who the Canucks claimed off waivers from the Philadelphia Flyers on Friday, in the second period. Following the fight, McGratton saluted the crowd and was assessed a 10-minute misconduct in addition to a five-minute major. … With his goal, Higgins extended his scoring streak to four games. He has registered three goals and an assist in that span.