Brad Marchand scored his fifth goal in three games, and Linus Ullmark made 32 saves for Boston (17-5-3), which had won three in a row.
“We seem to kind of be going back and forth to playing the way we need to to be successful, and trying to be too cute,” said Marchand, the Bruins captain. “And I think in the games it’s going to be easy at times, and you know, this game will humble you pretty quick. We saw that tonight.”
Buffalo outshot Boston 19-5 in the first period.
“We just didn’t have any energy or life to us,” Bruins coach Jim Montgomery said. “I've got to take responsibility for the lack of us having that preparation, it clearly wasn’t correct.”
JJ Peterka gave the Sabres a 1-0 lead at 1:18 of the second period, shooting into the top corner from behind the left circle off Dylan Cozens’s face-off win.
Thompson made it 2-0 at 16:57 of the second, one-timing Connor Clifton's centering pass from the high slot. Thompson scored his first goal in his second game since returning from an upper-body injury.
“I think just focusing just a shift at a time,” Thompson said. “Just step over the board and try to win your shift. Try to win the battle, beat the guy across from you. Don’t worry about the end result, and I think we did that tonight.”
Marchand cut it to 2-1 just 38 seconds later at 17:35, sending the puck in front from the right circle and bouncing it in off Sabres defenseman Erik Johnson. The five consecutive team goals scored by Marchand is the second-most in a row in Bruins history, tied with David Pastrnak (2019-20) and Dunc Fisher (1951-52) and one behind the six consecutive scored by the record-holder Glen Murray (2003-04).