The Flames ended a four-game losing streak. Calgary won at home for only the eighth time this season, tying Edmonton, Detroit and the New York Islanders for fewest in the NHL.
Calgary held a 2-1 lead with time running out in the second period when Stajan ripped a slap shot past Mike Smith.
That goal wound up being the deciding score when Shane Doan tallied for the Coyotes early in the third period.
Karri Ramo made 30 saves to pick up the victory. Smith stopped 23-of-26 shots.