Johnny Gaudreau scored, and Matthew Tkachuk had three assists for the Flames (36-26-7), who have won three games in a row and five of the past seven (5-1-1). Cam Talbot made 32 saves.
Calgary trails the Edmonton Oilers by one point for second in the division and is three behind the first-place Vegas Golden Knights, who lost 4-0 to the Winnipeg Jets.
"Every game right now has to be a playoff-type atmosphere," Talbot said. "All these games, they're going to make or break our season right now. To be able to close these gaps and push the other teams further down behind us is obviously huge."
WATCH: [All Coyotes vs. Flames highlights]
Taylor Hall had a goal and an assist for the Coyotes (33-28-8), who lost for the first time in three games. Darcy Kuemper made 31 saves.
Arizona trails the Flames by five points in the Pacific and is two points behind the Vancouver Canucks and Winnipeg Jets for the two wild cards into the Stanley Cup Playoffs from the Western Conference.
"You can't go on skids," Hall said. "That's the biggest thing is, you lose one, you have to get back on the horse and find a way to get a point or two in the next game, especially when you're on the road. We know the focus that we have to have. We're comfortable here. We're in games. If we can find a way to get on a streak, more than two games in a row, we're going to be set."