Kadri put Calgary up 1-0 at 1:29 of the first period when he backhanded a loose puck at the top of the crease by Vanecek for his team-leading sixth goal of the season.
Bastian tied it 1-1 at 4:27 after shooting five-hole on Markstrom from the slot off a pass from below the goal line from Jack Hughes.
"It was a great play from Jack," said Bastian, who has five points (one goal, four assists) in a four-game point streak. "Anytime you are able to sneak on the ice and get a couple extra minutes with Jack…he made such a great play and I had the easy work."
Zetterlund made it 2-1 at 7:50 when he lifted a loose puck at the edge of the crease over Markstrom. Wood then got behind the Flames' defense and redirected a centering pass from Michael McLeod to make it 3-1 at 16:38.
"We started on time, scored the first goal," Calgary forward Blake Coleman said. "Just an ugly one, kind of the way you want to get it going. And then, common theme of just lapses in the [defensive] zone and not giving our goaltender a chance. It's just dragging on too long."