Duchene one-timed a cross-ice pass on a 2-on-1 from Mikael Granlund. He had been on the ice for the entirety of overtime.
"I was probably top-five most tired I've ever been during a shift," Duchene said. "I was a bit of a tripod in the D-zone there. The boys out there, 'Granny' and [Mattias Ekholm], did a good job picking up my slack because I couldn't move. I was going to go off. I thought 'Granny' and 'Ekky' were going to go 2-on-1 but 'Ekky' fell. I'm like, 'Oh, I'll hang in it' and 'Granny' put a great pass on my stick and I was just able to get a shot off."
Duchene had a goal and an assist, Luke Kunin and Filip Forsberg scored, and Granlund had two assists for the Predators (5-4-0), who have won four straight. Juuse Saros made 38 saves.
"We got unbelievable goaltending," Granlund said. "I do not think we were even close to our best tonight. It's tough to win in this league, and you don't apologize if you win a game. We know we were not at our best but we found a way, and we got super good goaltending. We got these big two points."
Matthew Tkachuk and Oliver Kylington scored, and Jacob Markstrom made 19 saves for the Flames (6-1-2), who had their six-game winning streak end.
"It's still a step for us," Calgary coach Darryl Sutter said. "It's a battle-back point. You come from behind in the third, it's still a good point. That point's a big point for you."