BUFFALO, N.Y. -- Ilya Kovalchuk and Brendan Gallagher scored in a span of 2:16 early in the second period, and the Montreal Canadiens beat the Buffalo Sabres 3-1 on Thursday night.

Carey Price stopped 20 shots to improve to 5-1 in his last six starts, a stretch in which he's allowed just 10 goals. For Gallagher, the goal came in his first game after missing six straight and 10 of 11 with headaches and concussion-related issues.

Tomas Tatar sealed Montreal's fifth win in seven games with an empty-net goal with 1:47 left.

Jack Eichel scored for Buffalo, becoming the team's first player in 27 years to reach 30 goals in 50 or fewer games.

Carter Hutton made 27 saves in a loss that extended his skid to 12 games. He's gone 0-8-4 in his past 13 appearances since opening the season with six wins.

The Sabres turned to Hutton with starter Linus Ullmark expected to miss between three and four weeks after hurting his right leg in a 5-2 loss to Ottawa on Tuesday.

Hutton was making his second start in six weeks, and first since allowing five goals on 34 shots in a 6-3 loss to Vancouver on Jan. 11.

Buffalo dropped to 0-2 since coming out of a bye week off, and in the midst of what was supposed to be a crucial stretch for a team playing nine of 10 at home.

The game's momentum switched midway through the first period, and with Buffalo up 1-0 and having a 9-0 edge in shots. The Canadiens then took control in the opening minutes of the second period and eventually outshot Buffalo 30-21.

Kovalchuk scored 44 seconds in with a shot from in close, and after Buffalo defenceman Jake McCabe ran into Montreal forward Nick Suzuki.

A major defensive breakdown led to Gallagher's go-ahead goal.

Four Sabres defenders shaded toward Tatar in the right corner, where he spun around and made a no-look pass through the middle to find Gallagher all alone at the left post. Gallagher made a few moves to draw Hutton out of position before backhanding a shot in behind the goalie.

Sabres fans, already upset with Buffalo's dud Tuesday against Ottawa, proceeded to boo the team off the ice following the second period.

Buffalo opened the scoring 7:11 in, and 22 seconds after Montreal's Joel Armia was penalized for tripping.

Marcus Johansson began the play in the right circle by dropping a pass back to Rasmus Dahlin. The defenceman then swept a pass across to Eichel, who snapped a shot from the left circle that beat Price on the short side.

Eichel, who has 34 assists, became the first Sabres player to reach 30 goals and 30 assists since Jason Pominville had 30 and 43 in 2011-12. Eichel also became the first Sabres player to score 30 in his first 50 games of a season since Pat LaFontaine (42 games) and Alexander Mogilny (47) both did it in 1992-93.

Eichel has had such a dominant season, he hasn't gone more than three games without a point and has 22 goals and 23 assists in his past 32 outings.