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.
Teacher apologizes for showing sexual image of herself in class
Dennis Rodman pledges to end trips to North Korea