Mike Knuble, Scott Hartnell and Kimmo Timonen also scored for the Flyers, who have won two in a row after a six-game losing streak. Martin Biron made 31 saves.
Tampa Bay, which has lost nine of 11, got goals from Vincent Lecavalier and Vinny Prospal. The Lightning have lost to the Flyers only twice in the past 14 meetings between the teams.
Lupul, who has four goals and four assists over his past four games, put the Flyers up 1-0 with his penalty shot goal at 7:13 of the first. He was pulled down during a breakaway by Tampa Bay defenseman Brad Lukowich.
Philadelphia has three penalty shots this season. Daniel Briere (Dec. 16) and Mike Richards (Nov. 21) were both unsuccessful.
Knuble gave Philadelphia a 2-1 lead during a goal-mouth scramble on a Flyers power play with 55.8 seconds remaining in the second.
Hartnell made it 3-1 when he redirected Braydon Coburn's shot 31 seconds into the third, and Timonen added his goal at 4:17.
Tampa Bay coach John Tortorella started the game by juggling his lines after the Lightning had scored two goals or less during regulation in 10 of the previous 11 games.
Right wing Martin St. Louis played with Chris Gratton and Brad Richards. Mathieu Darche replaced St. Louis on the first line with Lecavalier and Prospal. Lecavalier, St. Louis and Prospal were reunited later in the game.
Tampa Bay rookie Karri Ramo stopped 18 shots.
KINGS 3, AVALANCHE 1
In Denver, Derek Armstrong and Scott Thornton scored goals 1:17 apart in the third period as Los Angeles broke an eight-game losing streak.
The Kings had only 10 shots on goal through the first two periods, but picked up the pace in the final 20 minutes, peppering Jose Theodore with 13 shots.
Armstrong tied the game at 1 midway through the final period, clanging a shot off the post for his third goal of the season.
Thornton followed with a slapshot from in close for his third of the season.
Colorado pulled Theodore with 55 seconds remaining, but Anze Kopitar wrapped up the win on an empty-net goal with 16.4 seconds left. It was Kopitar's 16th goal of the season.
Theodore was filling in for Peter Budaj, who had made seven consecutive starts, going 5-1-1.
Jean-Sebastien Aubin stopped 29 shots for the Kings, including a skate save on a wrist shot by Jaroslav Hlinka late in the final period.
Jordan Leopold scored his second goal of the season for Colorado off a pass from Wojtek Wolski in the first period.
Leopold had been out the past four games with a cut on his right leg, the latest ailment in an injury-plagued season. He's also missed 21 games with a wrist injury and two more due to hip problems.
The defenseman can't seem to stay healthy. Leopold was held out of all but 15 games last season as he underwent hernia surgery and then had groin and wrist injuries.
Colorado captain Joe Sakic underwent successful hernia surgery Friday. He's expected to be sidelined for eight to 12 weeks. Sakic, who's in his 19th season, is the franchise's career scoring leader with 1,611 points.
He injured the groin Nov. 30 at San Jose. The Avalanche are now 8-5-1 in his absence.
OILERS: Edmonton captain Ethan Moreau was in the starting lineup for Saturday night's game at the Minnesota Wild, marking his long-awaited return from an injury absence that lasted more than 14 months.
The 32-year-old left wing, who helped the Oilers reach the Stanley Cup Finals in 2006, dislocated his right shoulder just eight games into last season and didn't play again. He had recently signed a four-year contract extension through 2011, before getting hurt.
Then in September, Moreau took a slap shot off his left ankle in a preseason game. He was supposed to miss a few weeks, but the injury was later discovered to be worse than initially diagnosed.
Moreau, a first-round draft pick by the Chicago Blackhawks in 1994, has 224 points in 685 career games. Saturday night, he started on a line with Andrew Cogliano and Fernando Pisani against the Wild.