Claude Giroux and Wayne Simmonds (empty-net goal) each collected a pair of assists.
Hartnell has 22 goals, tops on the team and tied for eighth in the NHL.
Matt Read snapped a scoreless tie thanks to the dirty work provided by Simmonds. Simmonds stripped the puck from defenseman Anton Volchenkov behind the net, and fed Read for a one-timer from the slot with 10 minutes, 30 seconds left in the second period.
It was Read's 15th goal, tops among NHL rookies.
About 31/2 minutes later, just nine seconds into a power play, Kimmo Timonen's point drive was tipped past goalie Martin Brodeur by Hartnell from the high slot, making it 2-0. Simmonds set up a screen in front of the 39-year-old Brodeur, who is having a season far below his standards.
Twenty-eight seconds after Hartnell's goal, Alexei Ponikarovsky, acquired from Carolina on Friday, redirected Matt Taormina's shot past Bryzgalov (30 saves) to trim the deficit to 2-1 with 6:28 remaining in the second period.
Midway through the third period, after taking a feed from Giroux, Hartnell one-timed a left-circle shot past Brodeur to put the Flyers ahead, 3-1.
Simmonds secured the win with his 13th goal, scored on an empty net with 2:22 to go.
Earlier, the Flyers lost the services of veteran right winger Jaromir Jagr, again. Jagr, who will turn 40 next month, played just four first-period shifts that totaled 3:12 and did not return. The Flyers called it a lower-body injury, and Jagr (34 points in 40 games) is believed to have re-aggravated a groin ailment. He has missed six games this season with two different groin issues.
With Jagr sidelined, Brayden Schenn (four points in 18 games) moved to the top line with Giroux and Hartnell.
The Flyers are now 9-1-1 when they have scored at least two power-play goals in a game this season.
Contact staff writer Sam Carchidi at firstname.lastname@example.org or @BroadStBull on Twitter.