MONTREAL - The Montreal Canadiens were beaten by one of the league's worst teams for the second night in a row, despite their dominant performance.

A night after falling 2-1 to the Sabres, Montreal directed 90 pucks towards Buffalo's goal but found the back of the net just three times in a 4-3 shootout loss on Saturday.

The Habs took 44 shots on Buffalo's Jhonas Enroth, missed the net another 16 times, and had 30 shots blocked by the Sabres' forwards and defencemen.

"We spent three quarters of the game in the offensive zone without being able to capitalize more than we did," said head coach Michel Therrien. "The way we played, we could have picked up four points this weekend. So it's definitely disappointing when you only get one point."

On Friday, the Sabres benefited from a lucky bounce off the glass with less than two minutes remaining in the game to beat the Canadiens in Buffalo.

"It's always about results, but before the results you need performance," said Therrien, who was pleased by his team's relentless pressure, especially in the third period and in overtime. "For us, the performance this weekend was better, but the result was not there. If we keep focusing on the performance, the result eventually will be there."

With the game tied 1-1 going into the third, the Canadiens put together a commanding final frame, scoring twice on 19 shots on target. Montreal added another four shots on goal in overtime, but Enroth had the final word. Buffalo's goaltender also stopped all of Montreal's five shootout opportunities.

In the final 25 minutes of the game, the Habs directed 39 shots at the net (23 shots on goal, 12 blocks, four misses).

"This is the second game in a row we felt like we dominated them and out-chanced them, but it's the second game they come up with a win," said Alex Galchenyuk, who sent 16 shots towards Enroth's net but was left off the score sheet. "It's frustrating, but we have to forget about this game."

Montreal's Lars Eller took seven shots on target, scoring once, and Galchenyuk had six chances stopped by Enroth. Meanwhile, Sabres defenceman Mike Weber blocked six shots, while Tyson Strachan had five and Rasmus Ristolainen added another four.

Montreal did manage to pierce through Buffalo's defensive fortress on a few occasions.

Down 2-1 in the third, Eller's shot toward Enroth went off the skate of Sabres defenceman Nikita Zadorov and into the net at 7:31. Seven minutes later, Max Pacioretty gave the Habs their only lead of the game, jumping on a juicy rebound after Enroth lost sight of the puck.

Buffalo's Bryan Flynn tied the game just 49 seconds later, beating backup goaltender Dustin Tokarski for his third goal of the season before later slotting home the winner on his forehand in the shootout.

Former Canadiens captain Brian Gionta got the primary assist on Flynn's game-tying goal.

"We had the lead, we gave it away, but we stuck with it," said Gionta, who was met with a thundering cheer from the crowd during the singing of the national anthems. "It shows the maturity that the team is coming into in the way we're playing the game and the way we stick with things.

"The result that we had in the third period is something to look at and continue to grow off of."

After losing five straight, Buffalo (8-14-2) has now won five of its past six contests and sits in 14th place in the Eastern Conference. Enroth stopped 41 shots for his fifth win of the year.

"We knew it wasn't going to be easy," said Brendan Gallagher, who signed a six-year contract extension with the Canadiens earlier in the day. "They (Buffalo) are playing really well right now. It's too bad that we weren't able to come away with the win on home ice."

Despite shooting on Tokarski just once in the game's first 13 minutes, Buffalo opened the score at 14:03 of the first.

After Tyler Ennis' shot was stopped by the Canadiens' netminder, Montreal's David Desharnais failed to clear the rebound, shooting the puck right off Zemgus Girgensons and into the back of the net.

The goal was Girgensons' seventh of the season. The 20-year-old scored eight times in 70 games in his rookie year last season.

The Sabres blocked 11 shots in the first period.

The Canadiens started the second in inspired form, forcing several quality saves from Enroth in the first five minutes— including an impressive stop with his right pad on Andrei Markov.

Montreal (16-7-2) finally beat the 26-year-old Swede at 7:51 of the second. Gallagher celebrated his contract extension with his sixth goal of the season to tie the game at 1-1.

The five-foot-nine forward seemingly hit both posts with a shot from the slot, but video replay later showed the puck crossed the line by a hair before it was knocked away by the knob of Enroth's stick.

"I've never really seen one like that before," said Gallagher. "I wasn't really sure what they were reviewing to be honest. On the ice I thought I had just hit the post and missed. When I shot it, I lost track of it, then heard it hit the post and saw it on the other side. I just figured it was not a goal."

Gallagher has six goals and seven assists in 25 games with Montreal this season. In 150 regular-season games with the Canadiens, he has recorded 82 points (40 goals, 42 assists).

The Canadiens are now winless in their last three games (0-2-1) after winning eight of their previous nine.

"For us, it's just important to keep playing hockey," said Gallagher. "We're not far off, but we'll make improvements, no doubt. The character of the group of guys in this locker room, there's no lack of confidence or belief."

Tokarski made 23 saves in defeat for Montreal.

Prior to puck drop, Canadiens general manager Marc Bergevin explained the decision to prolong Gallagher's playing time in Montreal until the 2020-21 season.

"He doesn't take a shift off, he never has," said Bergevin. "The effort is always there, and his character is off the charts. He's always in the paint, he works hard, he gets loose pucks, and he's not afraid of anything. He competes night in and night out."

The 22-year-old Edmonton native was drafted by Montreal in the fifth round of the 2010 NHL draft — 147th overall. He was named to the NHL all-rookie team in 2012-13.

"Brendan has shown from day one that he loves Montreal, and he wants to be a Montreal Canadien," added Bergevin, who said the deal was roughly one month in the making. "He's proud, and he loves the city and its fans. That made it even easier."

Notes: Defenceman Tom Gilbert was a healthy scratch for the second game in a row. … Former Habs defenceman Josh Gorges, who was traded to the Sabres in the off-season, missed the match with a knee injury. … Carey Price was on the bench after getting the start 24 hours earlier in Buffalo.