"It's been a while," said van Riemsdyk, who scored for the first time since April 1, a 23-game span. "Sometimes you forget how great it feels to score a goal. It felt great. I just want to keep this going. We wanted to make sure we came out better after that first period we had."
Philadelphia has won consecutive games after dropping the previous two. The Flyers also moved into a tie with the Washington Capitals for the top spot in the Eastern Conference, but are ranked higher based on goal differential.
Maxim Lapierre scored twice for Montreal, which lost for the first time when leading after two periods.
"We dominated the first period and it was the reverse in the second," Canadiens coach Jacques Martin said. "They dominated the second and took some momentum away and the third period continued by just getting pucks in deep and outworking us in our zone."
In the second of four meetings between the teams, the Flyers finally scored on Carey Price, who entered with a league-best four shutouts, including a 41-save performance in a 3-0 victory against Philadelphia last Tuesday.
Leino solved Price at 14:53 of the second with a shot from between the circles that went over the goalie's left glove. It was the Flyers' 27th shot of the game and the 68th on Price including the first meeting.
Giroux tied it 1:48 into the third period. He snuck around the back of the net and poked Darroll Powe's pass by Price.
"Giroux is great at finding open ice," Powe said. "I tried to throw it in the area where he was."
Tempers flared in the previous game, which featured three third-period misconducts, and, later, verbal sparring between Flyers captain Mike Richards and Canadiens rookie defenseman P.K. Subban centering around Richards calling Subban disrespectful.
Lapierre was challenged Monday night, but opted against dropping gloves with Flyers enforcer Jody Shelley early in game, and spoke with his stick.
He first beat Brian Boucher from the blue line with a slap shot, with Flyers defenseman Sean O'Donnell providing an unintended screen. Lapierre's second goal went off the stick of Philadelphia's Andrej Meszaros and through Boucher's legs.
Despite yielding two first-period goals, Boucher made several big saves in his second straight start in net after having not started since Oct. 25.
"The saves he made in the first period were incredible," Flyers coach Peter Laviolette said. "He was sharp. Then he continued that way through the rest of the game. I thought he was terrific."
Boucher stopped 29 shots. Price made 42 saves.
After being outshot 15-9 in the first period, the Flyers outshot the Canadiens 36-16 the rest of the way.
"We didn't play the way we know we're capable of," van Riemsdyk said. "We really wanted to get out there in the second and rip the door off the hinges."
Van Riemsdyk provided the biggest shot of the night, and the former No. 2 overall pick conceded that he needed to relax.
"The last three games or so, when I got back in the lineup, I felt a lot better," he said. "I was playing without that pressure and not squeezing the stick as much. It makes it easier. It drives you crazy. If you ask my parents and brothers, they'd probably say I wasn't fun to be around recently. It feels good to get that one there."
The Flyers are 61-74-30-4 in their history against Montreal, the only NHL team they have a losing record against. ... Canadiens D Andrei Markov sat out with a right knee injury, and is out indefinitely. ... Flyers forward Daniel Carcillo is out for at least two weeks with a sprained left knee. ... Meszaros played in his 400th career NHL game. ... The Flyers won for the first time when they trailed after two periods.
Copyright by STATS LLC and The Associated Press
Arena: Wells Fargo Center Location: Philadelphia, Pennsylvania
Referees: Paul Devorski, Paul Devorski Linesmen: Darren Gibbs, Ryan Galloway
Attendance: 19,753 (101.3% full)
Team Stat Comparison
Power Play Goals
Power Play Opportunities
Shots on Goal
Maxim Lapierre (3)
Assists: Benoit Pouliot, Jeff Halpern
Maxim Lapierre (4)
Assists: Benoit Pouliot, Jeff Halpern
Ville Leino (4)
Assists: Daniel Briere, Scott Hartnell
Claude Giroux (12)
Assists: Darroll Powe, Sean O'Donnell
James van Riemsdyk (1)
Assists: Braydon Coburn, Mike Richards