Price stopped 13 shots in the first and 20 more in the second on his way to his seventh career shutout, his second in four games. He stopped 34 shots one week earlier in a 2-0 win over Vancouver which began Montreal's current streak.
Gionta assisted on Michael Cammalleri's goal during a two-man advantage midway through the first period. The Canadiens' captain got his second assist on Tomas Plekanec's goal 13:48 into the second.
Gionta scored for the third game in a row when he added Montreal's second power-play goal 6:24 into the third.
Sergei Bobrovsky made 25 saves for Philadelphia, which lost in regulation for the first time in three weeks. The Flyers, who beat Ottawa 5-1 on Monday, had gone 9-0-1 since a 2-1 loss in Columbus on Oct. 25.
It was the first meeting of the two Eastern Conference finalists since Philadelphia's series win last spring.
Montreal defenseman Andrei Markov was out of the lineup because of a right knee injury he suffered late in Saturday night's 7-2 win over Carolina after colliding with Hurricanes captain Eric Staal.
The Canadiens said prior to the game that Markov, who missed the first 10 games recovering from surgery on the same knee, will be sidelined indefinitely. There was no update on the nature of his injury.
Cammalleri scored 9:36 into the first during a lengthy two-man advantage. Flyers defenseman Chris Pronger was sent off for clearing a puck into the crowd at 8:39, 23 seconds after Matt Carle was called for slashing.
Plekanec scored in the second period to put the Canadiens up 2-0 moments after Philadelphia had two straight power plays, including a two-man advantage for 30 seconds.
The Montreal center took Gionta's pass and stopped in the right faceoff circle before surprising Bobrovsky with a shot under his right pad while Canadiens forward Travis Moen drove the left side.
Canadiens center Jeff Halpern had to be helped off the ice after he was hit by Philadelphia's Darroll Powe in the corner 27 seconds into the third. Powe appeared to get his elbow up on Halpern's head, though no penalty was called on the play.
Halpern's helmet came off after his head struck the boards and the back of his head struck the ice when he fell.
Powe fought with Montreal's Maxim Lapierre at 2:06.
Gionta got his third point at 6:24 when his backhand toward the net got past Bobrovsky for his fourth goal in five games.
Notes: Bobrovsky made his 11th straight start. ... The Canadiens have scored seven power-play goals in their past four games. They scored only once with the man advantage through their first 14 games. ... Montreal D Alexandre Picard, who was a healthy scratch for seven straight games, took Markov's spot in the lineup.