The Flyers ended a three-game losing streak and stayed four points behind the Atlantic Division-leading New York Rangers.
Philadelphia twice took a one-goal lead, but the contest was deadlocked as the game moved past the midway point.
Giroux broke the tie with 6:07 to go in the second period and Schenn soon followed with a wrist shot that beat James Reimer.
Toronto closed back within one on Tyler Bozak's second goal of the game with 1:51 to go in the middle stanza, but Philadelphia's Sergei Bobrovsky was perfect after that while making 26 saves.
Scott Harnell and Maxime Talbot also scored for Philadelphia. It was Hartnell's 26th of the season.
Reimer allowed all four Philadelphia goals on 39 shots.
Reindeer recovered after escaping from Santa during lighting ceremony
Puzzle-maker slips 'Murdoch Is Evil' into Rupert Murdoch's Sunday Telegraph