Kadri also assisted on Sharangovich's winner for a two-point night.
Dan Vladar got the start, making 26 saves. Earlier in the day, the team announced the recall of Dustin Wolf from the Wranglers and that Jacob Markstrom was sidelined with a lower-body injury, listed as day-to-day.
Jonathan Huberdeau also missed the game due to sickness, with Dillon Dube drawing into his spot on a line with Elias Lindholm and Sharangovich.
The Coyotes had an early powerplay in the tilt coming 3:51 in and Vladar made a massive stop on a tic-tac-toe play to Nick Schmaltz in the slot to keep it scoreless.
Then late in the first, the Flames went to the powerplay – their second of the period – after Michael Kesselring was called for two separate infractions on Connor Zary: running the Calgary forward into Ingram, hauling him to the ice and then cross-checking him twice in the head on the play. He got a minor for roughing and another cross-checking, and Jordan Oesterle got two minutes for roughing for going after him to defend his teammate.
Andersson beat Ingram clean gloveside on the advantage but the puck clanged the post and out of harm's way.
The visitors got a powerplay 1:03 into the second but the Flames managed to kill it off, even with Mikael Backlund playing without a stick after he it broke.
Vladar stoned Logan Cooley by slamming his pads together on his five-hole breakaway attempt and then Sean Durzi would open the scoring at 8:22, walking in from the blueline and stepping into a bouncing puck with a big slapshot, the replay showing it going end-over-end and hitting defenceman Noah Hanifin, Vladar getting a piece of it with his glove but still finding twine.
He would stop a great shot by Jason Zucker later in the frame, while at the other end Ingram flashed the leather to deny A.J. Greer who held and shot on a 2-on-1.
Backlund cut in right on the doorstep 12 seconds into the third with a backhand but Ingram was there with the glove again.
Cooley made it 2-0 at 6:37, tipping a pass from Durzi into the cage as he battled in the bluepaint behind Vladar before the rally started.