Victor Olofsson scored twice for the Sabres (7-8-1), and Devon Levi allowed five goals on 18 shots before being replaced by Ukko-Pekka Luukkonen (14 saves) late in the second period.
“They were sharper, obviously, than we were,” Buffalo coach Don Granato said. “We had chances (outshot Boston 34-32). They were sharper. We need to look in the mirror on that, and I know we will. We generated looks that could have been converted with a little bit more. That is not good enough.
“You talk about the night being [Kyle] Okposo’s 1,000th game, I know our group and I know they’ll be extremely disappointed and down as a result, and they will look in the mirror.”
Buffalo center Tage Thompson left the game at 11:05 of the second with an upper-body injury. He missed the final 15 minutes of the first period with a lower-body injury but returned for the second.
“Tage is going to miss some time here,” Granato said. “Probably significant time, unfortunately. He fought through the first injury but couldn’t fight through the second one. Credit to him to battle, but it’s unfortunate.”
Danton Heinen gave Boston a 1-0 lead at 3:01 of the first period, poking in the rebound of McAvoy’s shot at the front of the net.
Pastrnak took a cross-ice pass from Zacha on the rush and scored with a one-timer to make it 2-0 at 4:09.
Brandon Carlo finished off a quick passing play on a 3-on-1 with Pastrnak and Zacha to push the Bruins lead to 3-0 at 15:14.
“He makes people around him better,” Boston coach Jim Montgomery said of Pastrnak, who ranks second in the NHL with 24 points in 15 games. “As good a goal-scorer he is, he’s as equal passer, and the way he competes as a leader on our team and our most skilled player, it shows everybody that you have to work to have success.”