Simon Gagne, Jakub Voracek, Brayden Schenn and Luke Schenn also scored for Philadelphia (17-17-3), which is trying to make a late run for a playoff spot. Sean Couturier added two assists.
Nikolai Kulemin, John-Michael Liles and James van Riemsdyk had goals for Toronto (20-13-4), which lost left wing Joffrey Lupul in the first period to an upper-body injury after he took a hard hit.
James Reimer made 26 saves for the Maple Leafs, but took his fifth regulation loss of the season one day after Toronto management decided against bringing in a veteran goalie at the NHL trade deadline.
Dion Phaneuf had two assists.
Brayden Schenn gave the Flyers a 3-2 lead just 54 seconds into the second period after a giveaway by Kulemin in the Toronto zone. Schenn moved into the high slot and fired a shot that squeaked through Reimer.
The Flyers carried the play for the next few minutes, and the Maple Leafs responded with a couple of spirited shifts that got the crowd involved, including a pair of hits from Nazem Kadri.
But Philadelphia stretched its lead to 4-2 at 15:53 when Couturier's shot from the point was tipped in by Rosehill, who was playing his first game with the Flyers after being acquired from the Anaheim Ducks on Monday. Reimer complained to the officials that he was interfered with, and replays suggested he had a case, but the goal stood.
Van Riemsdyk brought the Leafs closer at 6:14 of the third with his first goal in 11 games, roofing a shot from in tight on Bryzgalov for his 15th of the season.
Toronto had other chances to tie the game as the period wore on, including a big push in the final minute, but couldn't get even before Luke Schenn scored into an empty net.
Of more concern for the Maple Leafs than the end of their three-game winning streak and eight-game point streak (5-0-3) is the status of the Lupul, who appeared to take a blow to the head after being sandwiched by Rosehill and Philadelphia's Adam Hall.
Lupul, who assisted on the first Toronto goal, has eight goals and six assists since returning from a broken forearm on March 16. He got back to his feet after the hit as play continued, but he was wobbly and had to be helped onto the bench. Lupul left for the locker room a short time later and didn't return.
Gagne opened the scoring on a nice deflection past Reimer just 1:19 into a physical first period. Kulemin tied it at 3:22, banging a loose puck past Bryzgalov.
After the hit on Lupul, Rosehill fought Toronto tough guy Colton Orr on his next shift.
Toronto went ahead at 16:46 on a shot from the point from Liles that found its way past Bryzgalov, who was screened by Frazer McClaren.
That lead was short-lived. Couturier sent a great pass to Voracek, who swept the puck past a helpless Reimer for his 16th goal.