Dadonov shot top corner over Markstrom's blocker from the far side on the rush to put Dallas up 3-2 at 10:07 of the second period.
Mason Marchment extended the Stars' lead to 4-2 with 12 seconds left in the second when he tapped a centering pass from Matt Duchene from the top of the crease.
Weegar shot short side through an Elias Lindholm screen and over Oettinger's right shoulder for a power-play goal that cut it to 4-3 at 2:20 of the third period.
Oettinger made a left-pad save on Zary's deke at 7:55 after Zary split between two Stars defenders to go in alone.
"Jakey's a stud," Benn said. "We don't get any of those wins without him. He's played some great hockey to start the year here. We obviously want to keep improving in front of him."
Oettinger also made a shoulder save and subsequent stop on a crease scramble in the final minute of the third, just moments after a puck got behind Oettinger before defenseman Esa Lindell made a skate save.
The Flames outshot the Stars 22-5 in the third.
"I think if we continue to play the way we did in that third period, this is a group that's capable of winning a few in a row while playing like that," Flames forward Nazem Kadri said. "Just got to build off it. Throughout this stretch I felt that there were maybe a couple games that could've went our way and didn't, and it's our responsibility to fight through it."
Zary, recalled from Calgary of the American Hockey League on Tuesday, gave the Flames a 1-0 lead 5:28 into the first period when he backhanded a loose puck behind Oettinger over the goal line.
"I remember it hitting me," Zary, 22, said. "I remember just trying to find it and it dropped down right in front of me and I put it in. I just remember looking around, just happy as can be, just screaming. It was pretty cool."