The Penguins squandered a two-goal lead in the third period for the second straight game and rebounded to win both of them.
Crosby got a gift goal with 2:45 left when Flyers goalie Martin Biron failed to secure the puck when he drifted out toward the hash marks to make a stop. Crosby was there when the puck came loose and he poked it into the empty net for his 23rd goal and 23rd career two-goal game.
The Flyers rallied to tie the game twice in the third period to take a 4-3 lead, but couldn't overcome Biron's gaffe.
Mike Richards scored a short-handed goal for the third straight game and Braydon Coburn's third-period goal tied it at 3. Mike Knuble's 24th goal with 5:35 left evened it at 4 and the largest regular-season crowd in Flyers history (19,992) erupted.
Biron came out near the right circle to stop Pascal Dupuis' breakaway. He was on all fours and stopped the shot, but failed to hold on to the puck, and Dupuis dumped it toward the empty net where Crosby was there for the easy goal.
The Penguins had dropped all five road games since their last win away from Pittsburgh, on Jan. 13, also against the Flyers.
Evgeni Malkin scored his 27th goal and Ruslan Fedotenko also scored two goals for the Penguins, who have now won two straight for new coach Dan Bylsma.
The Penguins took a needed step toward solving their road woes as they chase the eighth seed in the Eastern Conference. Pittsburgh plays seven of its next nine on the road and won for the second time in its last 11 road games.
Crosby, Malkin and Fedotenko scored in the second to give Pittsburgh a 3-1 lead. Marc-Andre Fleury stopped all nine shots in the period and had settled down after allowing Joffrey Lupul's first-period goal.
Richards, though, helped chip away at the two-goal deficit by doing what few others in the league can do as well as he can: score short-handed goals.
Richards picked off a pass at the point and took off on the breakaway to beat Fleury and score his NHL-high seventh short-handed goal. He's scored a short-handed goal in three straight games. The Flyers captain scored on a 5-on-3 disadvantage against the New York Rangers and scored against Buffalo with the Flyers a man down.
Fedotenko, who had the assist on the winning goal against Montreal, put the Penguins ahead 4-3 midway through the third, taking a red line pass from Crosby before beating Biron from the slot.
Knuble tied it again with his 21st of the season off a nice touch pass from Richards.
Notes: Fleury has started nine straight and 15 of the last 16. ... The Flyers still have not allowed a short-handed goal. The Flyers have never gone an entire season without allowing a short-handed goal. ... Flyers C Danny Briere (groin) hopes to return next week. ... Richards has 200 career points. ... Crosby recorded his 250th career assist.