Halak made 44 saves to win his fourth straight start for Montreal, which had lost 12 of 15 (3-11-1) prior to its current streak.
"As long as we get the wins, that's all we need right now," said Halak, who has taken full advantage of coach Guy Carbonneau's decision to go with the hot hand in goal in the wake of Price's struggles since returning from an ankle injury.
The Sharks outshot the Canadiens 46-21 overall, including a 14-4 margin in the second, and 18-7 in the third.
"We faced a really good team tonight and I don't think we played our best," Koivu said. "The first half was better but then we were kind of too passive in the second half."
Halak came up with a big stop midway through the third on a backhand from in close by Patrick Marleau, who hit the left post earlier in the period.
The San Jose captain did his part to get his team back in the game in the second when he made a patient pass from behind the net to set up Thornton's goal.
"We're just a good team," Thornton said. "We're just fast, we're strong, we're big, a lot of teams just don't know how to play us and really can't handle us and I think you saw that for 40 minutes. They just had really no clue how to stop us but I think their goalie played well, but we're just big and strong."
Boucher stopped 18 shots in his second start in a row, including a 2-1 win in Ottawa on Thursday night.
"Credit Halak, he was great," Boucher said. "On the back end of back-to-back games, you figure that maybe you can get them and they'll tire out but he stood tall in there. He did a great job and he's probably the main reason why they won the game.
Markov scored a power-play goal 11:05 in and former Sharks defenseman Gorges made it 2-0 with his third goal at 13:27 when rookie Matt D'Agostini swiped a pass into the slot after he fell behind the net.
Koivu, who assisted on Gorges' goal, got his 11th goal off a cross-ice pass from Markov at 17:47.
Pavelski scored his 18th goal on a power play 1:06 into the second period to cut the lead to 3-1. Halak moved off the right post as Pavelski found the puck at his feet in the goalmouth and pushed the puck into the open side.
Thornton got his 16th goal at 1:55 when he drove the right side of the slot to tuck Marleau's pass from behind the net past Halak.
San Jose defenseman Marc-Edouard Vlasic shot high on a chance at a wide open net on San Jose's next power play later in the second.
"We thought we were going to get that third one," Pavelski said. "It didn't happen in the second, we thought in the third period for sure. We played right until the end. We would have liked to put a stronger push in that last minute but we didn't get it."
Sharks RW Claude Lemieux returned to the lineup after he was rested for Thursday night's 2-1 win in Ottawa. Lemieux had played 15 straight games since Jan. 20, when he made it back to the NHL after a 5 1/2-year absence. The 43-year-old won the first of his four Stanley Cups in 1986 as a Canadiens rookie. ... Montreal played the 3,000th home game of the franchise's 100-year history, including its first eight seasons in the National Hockey Association, the NHL's predecessor. The Canadiens are 1,837-755-408 overall at home. ... Montreal C Kyle Chipchura and RW Mathieu Dandenault were healthy scratches.