Travis Sanheim and Owen Tippett each had a goal and an assist, and Bobby Brink and Nick Seeler scored for the Flyers (21-12-7), who ended their five-game road trip 3-2-0. Dan Vladar made 22 saves.
Connor McDavid pushed his point streak to 15 games with a goal and an assist for the Oilers (20-16-6). He has 36 points (14 goals, 22 assists) during the span, the sixth time in his career he has reached a 15-game point streak.
Evan Bouchard scored for Edmonton, which has lost three of four. Calvin Pickard made 24 saves.
Barkey gave the Flyers a 1-0 lead at 7:16 of the first period, taking a centering pass into the slot from Tippett and lifting it over Pickard’s right shoulder.
Sanheim made it 2-0 at 10:31 after Oilers defenseman Darnell Nurse attempted to clear a rebound from the crease. The puck went out to Sanheim, who scored from the right face-off circle.
Brink extended the lead to 3-0 at 14:38. Bouchard passed the puck out of his own zone looking for Zach Hyman, but Brink intercepted the pass, creating an odd-man rush that ended with Cam York banking a shot from the slot off of Brink.
McDavid made it 3-1 at 16:08, after Mattias Ekholm cut off a cross-ice pass by York at Edmonton’s blue line and sent the Oilers captain on a breakaway for a wrist shot that beat Vladar.
Bouchard got the Oilers to within 3-2 on the power play at 9:54 of the second period, taking a cross-ice pass by McDavid to the top of the right circle and one-timing a slap shot.
Seeler extended the lead to 4-2 at 9:09 of the third period with a wrist shot from above the left circle through traffic.
Tippett scored an empty-net goal with 1:10 remaining for the 5-2 final.