Claude Giroux and Ville Leino each lit the lamp for the Flyers, who have taken their last two games.
Brian Boucher stopped 29 shots in the win for Philadelphia, which suffered a 3-0 defeat at the hands of Montreal last Tuesday.
Maxim Lapierre scored twice in the first period for the Canadiens, who came into the game having won five of their previous six.
Carey Price, who had three shutouts and a 1.00 goals-against average over Montreal’s 5-1-0 run, was tagged for all three goals on 45 shots.
Trailing by a goal in the third, Philadelphia tied the game as Giroux grabbed a loose puck at the right side of the net and wristed it home at the 1:48 mark.
Just under six minutes later, the Flyers took the lead. Mike Richards had the puck behind the left side of the net and sent it to the left circle for Braydon Coburn, who then flung it over to the right circle where van Riemsdyk wristed it home for his first goal of the season.
Boucher finished the third period with 11 saves to help the Flyers win at home for the eighth time in their past nine games.
The Habs took the lead at the 11:51 mark of the first when Lapierre’s weak shot from the slot bounced its way past Boucher.
With 3:53 left in the opening frame, Montreal took a 2-0 lead as Lapierre sent a floater on net from the right circle that hit off the stick of a Flyer and went in for his fourth goal of the season.
The only goal of the second period came with 5:07 to play in the frame as Leino took a pass from Danny Briere at the left circle and let fly with a wrister that beat Price high.
The Flyers play in Minnesota on Wednesday…Montreal hosts Los Angeles on Wednesday…Jeff Halpern and Benoit Pouliot had the assists on each of Lapierre’s goals…Montreal went 0-for-4 on the power play while Philadelphia was 0-for-3.