The Oilers got off to a quick start and took the lead 32 seconds in when Hall scored on Edmonton's first shot.
The Oilers made it 2-0 at 4:02 when Nugent-Hopkins made a nice move at the blue line and scored from the slot. Hall earned his 100th NHL assist on the goal, and Oilers captain Andrew Ference notched his 200th point.
The Flyers couldn't get any of their 11 first-period shots past Ilya Bryzgalov, who played his first game against Philadelphia since the club bought out his hefty long-term contract.
Bryzgalov stopped Sean Couturier on a pair of short-handed opportunities in tight, including one on a diving stick save, in the second period. The Oilers have allowed an NHL-high eight short-handed goals this season.
The Flyers cut the deficit to 2-1 with a power-play goal at 3:37 of the second. Simmonds tipped in a shot from the top of the circle by Claude Giroux, who extended his point streak to eight games.
Philadelphia tied it with 7:47 left in the second with another power-play goal. A pretty tic-tac-toe passing play had Bryzgalov spinning around before Simmonds scored his second of the night into a wide-open net.
Simmonds, who has seven goals in his last five games, is the first Flyers player to have three straight multiple-goal games since Reggie Leach in 1981.
Philadelphia held a 14-3 shots edge in the second period.
Edmonton regained the lead on its next power play with 8:08 remaining in regulation. Perron banked a shot from the side of the net off Flyers defenseman Niklas Grossmann and into the net for his team-leading 16th of the season and the 100th of his NHL career.
Philadelphia came right back and tied it with 5:32 left, netting its third power-play goal. Hartnell tipped Kimmo Timonen's shot past a frustrated Bryzgalov during a 5-on-3 advantage.
Mason kept it tied with two minutes left when he stopped Perron with a glove save during a breakaway.
The Flyers outshot the Oilers 38-16 through overtime.
It was the second and final meeting between the teams this season. The Flyers, who won 4-2 at home on Nov. 9, hadn't won in Edmonton since March 19, 2001. ... The Flyers owe Bryzgalov $1.6 million per year through the 2026-2027 season. ... Oilers D Corey Potter (groin) didn't play. Recent AHL call-up Martin Marincin was in the lineup in his place. ... Flyers RW Steve Downie returned from an upper-body injury. RW Adam Hall also played after missing practice on Friday because of the flu.