BOSTON -- David Pastrnak had two goals and an assist for the Boston Bruins, who extended their season-opening point streak to eight games with a 4-1 win against the Detroit Red Wings at TD Garden on Saturday.

Pavel Zacha and Charlie McAvoy scored, and Jeremy Swayman made 22 saves for Boston (7-0-1), which was coming off its first loss of the season on Thursday (4-3 in overtime to the Anaheim Ducks).

“I thought that we neutralized their speed through their rush attack,” Bruins coach Jim Montgomery said. “I thought we protected our house from the back of the net and from the passes to the slot. It's a real gifted offensive team there, the Red Wings are, and I thought our focus on defense and our focus on offense, both of them, the game plan, the players went out and executed it great.”

Joe Veleno scored his fifth goal in as many games, and Ville Husso made 27 saves for Detroit (5-3-1), which has lost three straight (0-2-1).

“It wasn’t our best game by any means,” Veleno said. “The first period wasn’t good at all, losing puck battles, just them outcompeting us in general. We got fortunate enough to score that goal and hopefully it brought a bit of energy, but I think just a little too late.”

DET@BOS: Veleno trims Red Wings' deficit in 3rd

Zacha gave Boston a 1-0 lead with a power-play goal at 10:33 of the first period. Husso saved two shots before Zacha scored on a rebound from the slot.

“I was trying to be a little bit closer to the net, getting some more rebounds,” Zacha said. “Knowing we had good shooters on our power play, too, just trying to be closer to the net, and of course, try to shoot a little bit more. I was happy that the rebound came in there and I was able to score one.”

McAvoy made it 2-0 at 14:36 of the first, slipping a shot past Husso after picking up the loose puck on the right side of the offensive zone.

Veleno cut it to 2-1 at 6:40 of the third period, skating around Bruins defenseman Brandon Carlo and tucking a shot into the top right corner.

DET@BOS: Pastrnak nets goal in his 600th career game

Pastrnak extended the lead to 3-1 at 11:19 of the third period, scoring on a penalty shot after he was slashed on a breakaway by defenseman Jake Walman. It was the sixth penalty Detroit committed.

“Obviously, the toughest [penalty] was the last one,” Red Wings coach Derek Lalonde said. “We’re down 2-1. I mean, everyone in the building can feel it. You guys probably thought we were going to tie that game up. We hit a post, we had a Grade-A look, and then we just make a soft play, a little saucer through the middle of the ice and that ends up being a power play. So again, little areas of our game we can manage much better.”

Pastrnak scored an empty-net goal at 17:41 for the 4-1 final. He banked the puck into the net off the side boards from his own zone.

“I was just trying to get [the puck] out,” Pastrnak said. “I was there for a while, and I wanted to get a change, honestly.”

NOTES: Pastrnak played in his 600th NHL game. … Since the penalty shot was officially introduced in 1934-35, Pastrnak required the fewest games (eight) in NHL history to score two penalty-shot goals in a season. The previous mark was set by Brian Rolston (20 games in 2006-07). … Red Wings captain Dylan Larkin had his season-opening eight-game point streak end. ... Veleno has five goals in nine games this season. His NHL career high is nine goals set in 81 games in 2022-23.