Andrej Meszaros and Darroll Powe also scored for Eastern Conference-leading Flyers, playing without top defenseman Chris Pronger because of an undisclosed upper-body injury.
Mikhail Grabovski and former Flyer Joffrey Lupul scored for Toronto. The Maple Leafs have lost three straight, hurting their bid to climb into playoff position.
At a time when questionable hits have dominated discussion around the NHL, referees Mike Leggo and Brian Pochmara came down hard on Toronto defenseman Mike Komisarek. Less than four minutes into the game, he was given a major penalty for boarding and a game misconduct for shoving Daniel Carcillo into the boards from behind.
Meszaros opened the scoring on the ensuing power play, blasting home his sixth of the season at 4:55.
Toronto was fortunate to emerge otherwise unscathed from that situation, with goalie James Reimer making a great pad stop on Jeff Carter while the Flyers built an 8-1 shots advantage.
Powe got his sixth of the season at 9:36 of the second period after squirting a low shot from an awkward angle along the goal line between Reimer's legs.
Grabovski gave Toronto a brief shot of life with the most painful of his 26 goals this season. He was standing at the side of the goal when Dion Phaneuf's point shot ricocheted off his visor and past Brian Boucher at 11:13. It was Toronto's first power-play goal in six games.
Toronto pushed hard for the tying goal immediately after that Boucher robbed Colby Armstrong with his glove until Giroux put the Flyers ahead 3-1 with 5:20 left in the period. He went to the center of the ice just as the puck arrived on his stick and beat Reimer.
Energy line player Mike Brown was an unlikely catalyst for Toronto in the third period, turning defenseman Sean O'Donnell inside-out before setting up Lupul's goal at 7:56.
Fan, follow and download: Get the latest from NBCPhiladelphia.com anytime, anywhere. Follow us on Twitter, Facebook and NBC Philadelphia. Sign up for our sports newsletter. And, get breaking news delivered right to your mobile phone -- just text PHIBREAKING to 639710 to sign up. (Message and data rates may apply.)