Tkachuk's goal came after he missed the final eight minutes of the second period after being high-sticked by Mikael Backlund. Tkachuk lost a tooth and required nine stitches to close a cut on his lip.
"I don't feel too good," Tkachuk said. "I don't feel too good looking, either, right now. Thank God we got the Christmas pictures done already. It'll be a good fun couple of days."
Nick Cousins and Ridly Greig scored for the Senators (17-13-2), who have won seven of eight. Linus Ullmark made 29 saves for his seventh consecutive victory.
"I think there's been games this year where maybe we outplayed the other team and we didn't find a way to win," Cousins said. "Karma was on our side tonight because probably not our best. That was an ugly game from both sides. There was not much going on out there. Good teams find a way to win and big goal by 'Chucky' in overtime."
Blake Coleman and Jonathan Huberdeau scored, and Vladar made 26 saves for the Flames (15-11-7), who have lost three of four and nine of 12.
"It's the way we play," Coleman said. "Low-scoring, tight-checking. It's going to lead to some close games. We've found ways to come back. We also have to figure out ways to control leads. We're going to be in these tight games. Especially at home, it feels like we're constantly finding overtime so we have to find ways to come out with two points instead of one."