Calgary has won consecutive games for the first time since the opening two weeks of the season and finally reached 10 victories for the campaign.
The Flames scored four times on just 18 shots against Thomas Greiss.
Keith Yandle picked up the Coyotes' lone goal 4:47 into the contest, but Calgary escaped the first period with a 1-1 tie thanks to a goal from T.J. Brodie with eight seconds left in the stanza.
Karri Ramo, making his second straight start, earned the win by stopping 29 shots.
Ray Liotta sues skin care company over use of likeness
NBC reportedly holds celebs hostage to Jimmy Fallon's show