Milan Lucic, Johnny Gaudreau and Dillon Dube each had a goal and an assist for the Flames (5-5-1).
Calgary's Sam Bennett and Elias Lindholm also scored as the NHL's Battle of Alberta commenced in the compressed 2020-21 season.
Calgary goaltender Jacob Markstrom made 28 saves for the win, including 16 in the first period when his team was outshot 17-3 and trailed 2-1.
Oilers captain Connor McDavid had a goal and an assist, with Jujhar Khaira, Jesse Puljujarvi and Darnell Nurse also scoring for Edmonton (6-7-0).
McDavid extended his point streak to nine games (six goals, 15 assists) and continued to lead the NHL's points race with nine goals and 17 assists.
Oilers starter Mikko Koskinen stopped 22 shots in the loss.
Saturday's meeting was the first of 10 this season between Alberta's NHL teams and the first since the two clubs combined for over 100 penalty minutes Feb. 1, 2020.
That game, won 8-3 by the Oilers, culminated in a line brawl and a rare goalie fight at centre ice between Edmonton's Mike Smith and Calgary's Cam Talbot.
Bennett scored his first goal of the season a week after his agent indicated the forward wished to be traded. Bennett was a healthy scratch in Calgary's 4-1 loss Thursday to the Winnipeg Jets.
Playing on a line with Sean Monahan and Gaudreau on Saturday, Bennett restored a two-goal lead for Calgary at 10:57 of the third period.
Gaudreau fed Bennett from behind Edmonton's net for Bennett to tuck the puck between Koskinen's pads.
Calgary led 5-3 on Gaudreau's goal at 5:16 of the third, but Nurse pulled the visitors within one at 8:55 whipping the puck from the high slot over Markstrom.
Gaudreau scored off the rush on a feed from Monahan beating Koskinen's glove with a wrist shot.
Dube's slapshot from the top of the face-off circle produced a power-play goal for Calgary at 2:56. Puljujarvi had briefly pulled the Oilers even at 1:18 on a give and go with McDavid.
Calgary trailed 2-1 after the opening period, but Lucic and Backlund both scored in a span of just under two minutes early in the second.
On an odd-man rush with Andrew Mangiapane, Backlund opted to shoot and batted his own rebound between Koskinen's pads at 4:58.
Lucic pulled the Flames even at 3:04 when Koskinen denied Mangiapane on a wraparound attempt. Lucic beat Edmonton's goalie with a sharp-angle shot on the rebound.
McDavid gave the visitors a 2-1 lead with a power-play goal at 18:29 in the opening period. The captain shelved a wrist shot over Markstrom's shoulder off a pass across the high slot from Ryan Nugent-Hopkins.
Khaira dueled Flames defenceman Juuso Valimaki in the slot when he re-directed a William Lagesson shot by Markstrom's blocker at 6:53.
Lindholm scored on Calgary's first shot of the game 56 seconds after puck drop. He collected a drop pass from Dube and wristed the puck by Koskinen far side.
Calgary has trailed after the first period in seven of 11 games this season with a 3-4 record in those games.
The Flames donned retro jerseys Saturday featuring the flame-snorting horse head ``Blasty'', which was first worn in 1988-89 to commemorate the Year of the Cowboy.
The Oilers head east on their five-game road trip for a pair of games in Ottawa and one in Montreal.
The Flames are at home to the Winnipeg Jets on Tuesday and the Vancouver Canucks on Thursday.
Notes: Calgary placed centre Derek Ryan (broken finger) on long-term injury reserve, while the Oilers put defenceman Ethan Bear (upper body) on injured reserve Saturday . . . Gaudreau reached a career 300 assists . . . Calgary defenceman Noah Hanifin played his 400th career NHL game.