J.T. Miller and Bo Horvat each had a goal and an assist, and Jacob Markstrom made 25 saves for the Canucks (24-17-4), who won for the first time in three games after a seven-game winning streak.
"It was huge for our group, especially on a road trip," Boeser said. "You don't want to start the road (trip) off with three straight losses (9-2 to Tampa Bay Lightning on Tuesday, 5-2 to Florida Panthers on Thursday). We did a really good job of (playing) more of our style of game tonight. We were more direct, more simple with the puck, we shut it down defensively, and I think that's a key for our group."
WATCH: [All Canucks vs. Sabres highlights]
Jack Eichel and Rasmus Dahlin each had two assists for Buffalo (19-19-7), which lost its second straight. Carter Hutton made 29 saves in his first start since Dec. 19.
"I felt fine. It's just frustrating, you know what I mean?" said Hutton, who is 0-7-4 after starting the season 6-0-0. "[They're] a pretty good hockey team up front. I think sometimes it's like when they get to buzz like that in the offensive zone and move pucks around, stuff like that, it's hard to compete. We battled, but obviously it's just not good enough."
Vancouver scored four times in the third period, including three in a span of 6:21, after the game was tied 2-2 in the second.
Miller scored off the rebound of his shot to make it 3-2 at 1:17, and Girgensons tied it 3-3 at 3:28 when he deflected Kyle Okposo's shot from the left circle.