Tkachuk snapped a shot from the left face-off circle at 4:25 of overtime to complete Calgary's comeback.
"I recognized that they had a couple guys that were tired out there that were out there a full shift before me, and then mine, so I thought why not try to take advantage of it one more time and did one more lap and got the puck and then put it in," Tkachuk said.
WATCH: [All Coyotes vs. Flames highlights]
Johnny Gaudreau and Mark Giordano scored, and David Rittich made 34 saves for the Flames (9-7-2), who are 4-2-1 in their past seven games.
"We didn't start how we wanted most of the games but we're getting strong finishes," Rittich said. "It's a good thing for us. We have to figure out how we can play 60 minutes from the beginning to the end."
Clayton Keller, Christian Dvorak, and Vinnie Hinostroza scored, and Antti Raanta made 39 saves for the Coyotes (9-5-1), who are 8-2-1 in the past 11 games.
"We're up 3-1 and that's the strongest point of our game, defending, so obviously we don't want to give up two goals in the third, let them tie us up and take us to overtime," Hinostroza said. "Obviously we're disappointed in that, but we still got a point so it's not the end of the world. Definitely need to fix what mistakes we made and move on."