Michael Stone had a goal and two assists, Andrew Mangiapane scored, and Dan Vladar made 26 saves for Calgary (2-0-0).
"I think guys were great today, they were blocking shots," Vladar said. "Obviously, when you get the 4-1 lead, it's way easier to play. You kind of don't want to give them the momentum of letting the second one or the third one [in]. I did, but it wasn't the plan, obviously. I'm just literally trying to do my best."
Connor McDavid scored his fourth goal of the season, and Leon Draisaitl had two assists for Edmonton (1-1-0), which also fell behind 3-0 to the Vancouver Canucks on Wednesday before rallying for a 5-3 win.
"We're putting ourselves behind in games, and obviously that's not our plan heading into a game," Oilers coach Jay Woodcroft said. "The response in the second and third was better, but when you put yourself down the way we did, it's too big a hill to climb after being down to that team 4-1."
Jack Campbell allowed four goals on 11 shots before being pulled 10:18 into the first period. Stuart Skinner made 31 saves in relief.
"You look at some of the goals that went in, I thought around our net we were not near as assertive or hard the way we normally can play," Woodcroft said. "They did a good job of getting to our net, and we can do a better job of preventing them from getting there."
Mikael Backlund gave the Flames a 1-0 lead at 1:13 of the first period, scoring on a rebound.
Cody Ceci tied it 1-1 at 3:18 from the high slot, but Stone put Calgary back in front 2-1 at 4:34 on a slap shot off a face-off.
After Kadri extended the lead, Mangiapane made it 4-1 at 10:18, cleaning up a loose puck in the crease.
"I thought we played a really strong game," Flames coach Darryl Sutter said. "In the second period, you knew they were going to come with a push, and they did early. … I thought for the most part we did a pretty good job."