Ville Leino, Blair Betts, Scott Hartnell and Danny Briere also scored for Philadelphia, which outshot Toronto 40-15.
The Flyers scored twice in the closing minutes of the first period. Richards intercepted Francois Beauchemin's clearing attempt and fired a shot over defenseman Dion Phaneuf's stick and past goalie Jean-Sebastien Giguere. Nearly 2 minutes later, Leino arrived in traffic and trickled a shot into the net.
Toronto's Phil Kessel and Clarke MacArthur each scored their sixth goals of the season. Of the Leafs' 20 goals, 12 have been scored by that tandem. MacArthur's goal brought the Leafs within one with 1:14 left in the second period.
Philadelphia took over in the third. Hartnell took Richards' cross-ice pass and rifled a one-timer past Giguere at 1:05, and a Briere scored off a wrist shot from the faceoff circle to give the Flyers a three-goal advantage.
Giguere suffered his first loss of the season after going 3-0-1 with a 1.96 goals-against average.
NOTES: Philadelphia went 3-1 against the Leafs last season, and hasn't lost to them at home since March 12, 2008. ... Briere has a team-leading five goals in his first seven games. ... MacArthur's goal was the 50th of his career.