Betts, who had just one goal in his previous 16 games this season, scored on an in-close redirection with 9:59 to play to give the Flyers a 3-2 lead. Richards extended the Philadelphia advantage to 4-2 at 17:22 of the third.
Simon Gagne had a late empty-net goal for Philadelphia, which stopped a four-game losing skid and also picked up its fourth win in the last 18 games.
Tampa Bay got goals from Zenon Konopka and Victor Hedman. The Lightning were looking for their first three-game winning streak of the season.
Betts put the Flyers ahead 1-0 on a fluke goal at 3:59 of the first. He was last Philadelphia player to touch the puck before Tampa Bay defenseman Andrej Meszaros accidentally sent it into his own net.
Richards made it 2-0 on his first goal in eight games, which came during a power play with 10:26 left in the first. The center has eight goals and 11 points in his last five games against Tampa Bay.
Konopka stopped a personal 61-game goal drought - dating to Dec. 14, 2005 - with a rebound goal to get Tampa Bay within 2-1 at 5:58 of the second. Hedman tied it at 2 from the top of the left circle with 7:58 remaining in the second.
Lightning center Jeff Halpern and left wing Todd Fedoruk both left with undisclosed lower-body injuries.
NOTES: Flyers G Brian Boucher missed the game due to a right ring finger cut. ... Tampa Bay rookie C James Wright was a healthy scratch. He has no points in his last 13 games and has gone 21 consecutive games without a goal. ... Flyers C Darroll Powe returned after missing 16 games with a left shoulder strain. ... Lightning D Mattias Ohlund played in his 800th NHL game. ... Flyers D Ian Laperriere assisted on both of Betts' goal for his first points in 23 games.