Jakub Dobes made 27 saves, Oliver Kapanen scored and Alex Newhook and Nick Suzuki each had two assists for Montreal (5-2-0), which has won five of the past six games.
Suzuki has 10 points (one goal, nine assists) during a six-game point streak.
Jiri Kulich and Tyson Kozak scored for Buffalo (2-4-0), which had won consecutive games. Alex Lyon made 25 saves in his sixth straight start.
Kapanen put Montreal up 1-0 at 8:29 of the first period. He scored on a backhand between Lyon’s pads from the goalmouth after linemate Ivan Demidov was separated from the puck while driving to the net.
Kulich tied it 1-1 at 6:51 of the second. After taking the puck off Canadiens forward Joe Veleno inside the blue line, Kulich drove to the net to take a return pass from Zach Benson and put a backhand under Dobes’ left pad.
Slafkovsky made it 2-1 for the Canadiens at 2:57 of the third. He shot the puck into a wide open net after Noah Dobson tucked the puck around Lyon into the crease as he cut behind the net.
Hutson made it 3-1 at 11:38 on a wrist shot past Lyon’s glove from the slot on a pass from Newhook.
Kozak drew the Sabres within 3-2 at 12:02. He cut to the net from the right side to get behind Kapanen and swipe in Jack Quinn’s pass into the crease.
Evans scored into an empty net with 30 seconds remaining for the 4-2 final. Suzuki got his second assist.
Buffalo defenseman Zach Metsa made his NHL debut. Defenseman Jacob Bryson is in the concussion protocol and did not make the trip. Sabres forward Beck Malenstyn did not play for personal reasons.