Brayden Schenn, Kimmo Timonen and Tye McGinn scored for the Flyers (6-7-1), coming off a 5-2 loss in Toronto. Jakub Voracek had two assists.
Andrew Ladd scored both goals for the Jets (5-6-1), the last in the dying seconds. Winnipeg was coming off a 1-0 win in Ottawa on Saturday.
Ilya Bryzgalov was solid in net for the Flyers, who were outshot 26-23.
Al Montoya recorded his first loss as a starter for the Jets, with two wins including Saturday's 1-0 shutout, when he took over for a flu-stricken Ondrej Pavelec.
Pavelec replaced him in the third after what was reported as a lower-body injury for Montoya.
The Flyers took a 2-1 lead in the first, even though they were outshot 9-6 by the Jets.
Montoya didn't have much of a chance when Schenn redirected Voracek's pass right in front of the net, on Philadelphia's second shot of the game at 8:07.
Winnipeg tied it up at 14:12, when Blake Wheeler fed Ladd just in front of the Flyers net and he squeezed one past Bryzgalov's short side.
A late cross-checking penalty to defenceman Zach Redmond was costly, with Timonen slamming one down a clear path between the faceoff circles that Montoya wasn't fast enough to block.
There was no scoring in the second, although Winnipeg again outshot the Flyers 10-6 for the period. There was also a short scrap between Jets defenceman Mark Stuart and McGinn.
McGinn then redirected Vortacek's pass into Winnipeg's net at the 4:17 mark from just outside the crease.
Ladd scored his final goal at 19:13 after the Jets pulled their goaltender.
The Jets went 0 for 4 on the power play.
This was Winnipeg's and Philadelphia's first meeting this season.
It was also the first game defenceman Dustin Byfuglien has played since the Jets visited Montreal. He got a massive cheer when his name was announced in the starting lineup.
Notes: The Jets went into the game with the most productive defence in the NHL at 34 points, led by top-scorer Tobias Enstrom with 13 points.