Danny Briere, Darroll Powe and Claude Giroux also scored for the Flyers, who are 9-0-1 in their past 10 games, and haven't lost in regulation since losing a lackluster 2-1 game to Ottawa on Oct. 25, a defeat that stoked the ire of coach Peter Laviolette. Jason Spezza scored for Ottawa.
The game was stopped for a few moments in the first period when a young girl was struck in the head when a puck deflected into the stands. She received medical attention and was taken to the hospital for evaluation.
The Flyers have played inspired hockey since that loss to the Senators last month. Ottawa came into Philadelphia on a hot streak of its own - with a 5-1-0 record in its past six games - but did little on Monday.
Richards is the hottest Flyer at the moment. He scored five goals in his previous three games, including a two-goal game on Nov. 13 against the Florida Panthers. He had just one goal in his first 12 games.
The Flyers took a season-high 46 shots.
Richards earned his 300th career point on Giroux's goal, a power play in the third period. He partially whiffed on his pass to Giroux in the slot, but the right wing gathered it and fired a shot Elliott who was screened by Ville Leino.
Richards scored twice in a 90-second span in the third period to put the game away. He first scored at 6:13 on an unassisted short-handed goal, getting past the defense and faking Elliott with a backhand-to-forehand move. He then took a Braydon Coburn shot off the boards and flicked it into the net at 7:43 to cap the scoring.
Briere opened the scoring for Philadelphia at 8:43 of the first period, when he redirected Andrej Meszaros' wide shot into the left corner of the net and past goalie Brian Elliott, who had his personal five-game winning streak snapped.
Briere's ninth goal of the season leaves him tied for second on the team with Jeff Carter, behind Giroux's 10.
Spezza tied the game nearly two minutes later, shooting the puck past Bobrovsky, after it went off the skate of Flyers defenseman Matt Carle. Spezza maintained his point-per-game average, and has six goals and eight assists in 14 games this season.
Kimmo Timonen and Powe combined to retake the lead at 12:17 of a penalty-less first period. Timonen's shot from the blue line was deflected by Powe's stick in the air, then bounced off the ice and over Elliott's shoulder.
Notes. Ottawa won three of four against the Flyers last season. ... Richards has at least one point in nine of his past 10 games.