Marchand and Hampus Lindholm also scored for the Bruins (45-8-5), who have won at least six consecutive games four different times this season.
Brock Boeser scored, and Arturs Silovs made 33 saves for the Canucks (23-31-5), who lost in regulation for the first time in four games (2-1-1).
"They had a couple of shifts where they had us hemmed in and then after that I thought we outplayed them," Canucks forward J.T. Miller said. "They sit on the lead and they're one of the better defending teams, but I still think we had plenty of looks. We're really starting to get an identity, like a hard-work, no quit team."
Lindholm put Boston ahead 1-0 at 17:08 of the first period with a one-timer from the point through traffic on a power play.
Marchand made it 2-0 with 25 seconds left in the period. He cut to the middle around defenseman Kyle Burroughs before shooting back across the grain past Silov's glove as the goalie moved right.
"I just got a little bit of open ice and it looked like there was a little bit of room in the middle," Marchand said. "When I cut, he kind of lost speed and just tried to get a shot on net, tried to get it under the defenseman's stick because he kind of reached, and in that situation, it always has an opportunity to go in."