Brad Marchand got Boston within 2-1 at 11:14 of the third period with a redirection from the left side of the slot.
"They're a good team," Marchand said. "They compete hard, they've won, they know what it takes, they still have the majority of their core in there. We have to bring our best game when we want to compete with them, so we need a better effort on Saturday."
Jason Zucker gave the Penguins a 3-1 lead at 13:07 off a pass from Evan Rodrigues.
"It was a heck of a play by Marcus [Pettersson] to step up at the red line, and then an even better play by Rodrigues to give me that pass," Zucker said. "So at that point it's just getting the puck on net. But you know it was, again, a big goal at that point in the game."
Jake Guentzel scored an empty-net goal at 17:51 for the 4-1 final.
"Well it's great from our standpoint," Sullivan said of ending the losing streak at Boston. "I can only speak for myself personally, but it's nice to get a win here. You know this is not an easy building to play in, this is a real good team and has been for a number of years. And so it's always a big challenge when you come here. I thought the guys played really hard tonight."
NOTES:Penguins forward Brandon Tanev returned after missing six games because of an upper-body injury. He had an assist and a Pittsburgh-high five hits in 14:02 of ice time. … Bruins defenseman Brandon Carlo sustained an upper-body injury in the first period and is day to day. He was playing his second game since returning from 10 games missed due to an upper-body injury. … Pittsburgh goalie Tristan Jarry did not play because of an upper-body injury.