With the game knotted 2-2 midway through the third, Evgeni Malkin was whistled for interference and the Flyers went on the power play. Chris Pronger took a shot from the left circle that Hartnell redirected into the net, handing Philadelphia the lead for good.
Claude Giroux and Nikolay Zherdev also scored and Brian Boucher turned aside 21-of-23 shots for the Flyers, who've gone 5-0-1 in their last six games to bypass Pittsburgh for the Atlantic Division lead and the NHL's best record (20-7-5).
Malkin, returning from a four-game absence due to a knee injury, scored both Penguins goal and Sidney Crosby got an assist, matching a career best with a 19-game point streak.
Marc-Andre Fleury stopped 34-of-37 shots in the Penguins' first loss since in nearly a month.