Gaudreau had two assists, and Matthew Tkachuk scored his 30th goal of the season for the Flames (39-17-8). Jacob Markstrom made 16 saves.
"We've got a lot of offense on our team," Gaudreau said. "Up and down our lineup, we've got a lot of smart players on our team this year. It's been a lot of fun to be a part of and to watch."
Michael Carcone and Vladislav Kolyachonok each scored his first NHL goal, and Karel Vejmelka made 29 saves for the Coyotes (20-40-4), who have lost four in a row and five of seven since a season-high four-game winning streak.
"The way we battled and the pride our players showed and the competitiveness throughout 60 minutes, I'm proud of them," Arizona coach Andre Tourigny said. "I'm happy about the way we played. I think the other side, they needed to raise their game after the first period to beat us and they did. Credit to them. They're a good team. I have no problem with the way we played."
Tkachuk scored 33 seconds into the second period to put Calgary up 1-0. He took a pass from Gaudreau and shot past Vejmelka's glove.
"It is nice (to score 30)," Tkachuk said, "but I think both of us have done it before so I think we come in each year with, not personal goals like goals and assists or that stuff ... you just want to keep getting better each year, so hopefully we just continue to play better and help the team offensively, defensively, all the way around."