Ryan Nugent-Hopkins and Dominik Kahun also scored goals for the Oilers (23-14-1) and Leon Draisaitl notched assists on a pair of power-play scorers.
Calgary (16-19-3) scored goals from Michael Stone and Matthew Tkachuk, but twice gave up a one-goal lead.
Mike Smith stopped 24 of 26 shots for the Oilers and Jacob Markstrom made 22 saves for the Flames. The Calgary goalie has lost his last five straight starts.
The result did nothing to improve the Flames’ playoff hopes. The team continues to be fifth in the North Division, six points behind the Montreal Canadiens.
Edmonton has had the series advantage between fierce rivals this season, improving to 5-2-0 with Friday’s result. The Oilers and Flames will meet three more times this year.
Both teams entered Friday’s game well rested. Edmonton was shut out 4-0 by the Canadians on Tuesday, while Calgary’s final game, a 5-1 loss to the Winnipeg Jets, came on Monday.
The Flames flew to Vancouver to face the Canucks on Wednesday, but the game was called off shortly before the puck was dropped as the hosts added another player to the NHL’s COVID-19 roster. The Canucks had seven players and a coaching staff member in league protocols Friday.
A power play goal in the third period made the difference for Edmonton.
Noah Hanifin was called in to step in halfway through the frame and the Oilers were quick to capitalize.
Just four seconds from the lead, McDavid shot a stopwatch on the Calgary net. Markstrom got part of the shot, but the puck dribbled over the goal line, giving Edmonton a 3-2 lead.
It was McDavid’s 22nd goal of the season. He continues to lead the league with 64 points.
Draisaitl is second in the race with 56 points (19 goals, 37 assists).
Kahun drew the Oilers even at 11:29 am in the second Friday. Kailer Yamamoto gave him a small pass at the top of the crease and Kahun, stationed in the blue paint, cornered him to make it 2-2.
Tkachuk gave the Flames a 5:25 goal lead in the frame.
Springing from the area after serving a cut penalty, the spirited forward picked up the puck in the neutral zone and fled on a breakaway. His stick work in front of the net led Smith to believe he would try to slip one between the goaltender’s legs, but instead Tkachuk put a backhand shot under the crossbar for his 10th goal from the year.
It was a power-play tally from Nugent-Hopkins that initially equalized the game at the start of the second.
With Chris Tanev in the box on a trigger call, the Oilers’ mighty power play got to work. A series of clean passes past the Flames’ crease ended with Nugent-Hopkins placing a spinning backhand past Markstrom.
Edmonton were 2 in 5 with the man advantage on Friday. Calgary failed to take advantage of two power plays.
The Oilers dominated the opening minutes on Friday, crushing the Flames on their side and edging the visitors 8-1 early, but Calgary was first on the scoreboard.
Stone took a clean pass from Andrew Mangiapane and set off a blast near the blue line. The puck went through traffic and after 12:23 Smith into the game.
It was the Calgary Defenseman of the Year’s first goal. Its last count was on Jan.5, 2020, when the Flames edged the Minnesota Wild 5-4.
The Flames will be back in action on Sunday when they host the Leafs. The Oilers are due to visit the Canadiens on Monday.
NOTES: Calgary center Mikael Backlund was absent from the roster. The Flames say he is “hand to mouth” with an undisclosed injury.