Toffoli, who also had an assist, Troy Stecher (goal, two assists) and J.T. Miller (three assists) each had three points for the Canucks (33-22-6), who are 3-1-1 in their past five games after going 0-3-1 in the previous four.
Toffoli, who was acquired in a trade from the Los Angeles Kings on Monday, made it 7-3 at 11:10 of the third period and scored his 20th goal at 13:03 to make it 8-3.
"It feels good," he said. "Obviously scoring a goal this early makes it a little easier, but at the same, you've just got to keep working. It sounds cliche, but keep trying to build these guys, not just my linemates, but everybody. Lots of talk and lots of work, and we're going to have some fun."
[WATCH: All Bruins vs. Canucks highlights]
Jacob Markstrom made 34 saves for Vancouver, which moved into second place in the Pacific Division, two points behind the Vegas Golden Knights and one ahead of the Edmonton Oilers.
"They're the best team in the League," Miller said. "The crowd was awesome. Big rivalry, they have some really good players. It's an exciting game to get up for, and I think it's a good test, obviously. We played a really good game. Everybody was going, worked hard, wore them down. It feels really good in here."
Video: BOS@VAN: Toffoli beats Halak for second goal of game
David Pastrnak scored two goals for the Bruins (39-12-12), who lost for the first time in six games and second in their past 13. Boston, which was coming off a 4-3 win against the Edmonton Oilers on Friday, has a five-point lead on the Tampa Bay Lightning for first place in the Atlantic Division.
"You're going to have games like this, so I'm not going to lose sleep over this hockey game," coach Bruce Cassidy said. "Sooner or later, during the course of 82 games, you're going to have ones where the other team is clearly better than you. We're not going to beat ourselves up over this loss."
Tuukka Rask allowed six goals on 27 shots before he was relieved in the third period by Jaroslav Halak, who made five saves.
"I should have made a couple saves in the first there, maybe get us in it," Rask said. "The way I look at it from a goalie's perspective, it's one of those when it rains, it pours type of things."
Stecher made it 1-0 with a shot from the right face-off dot at 4:14 of the first period.
Pastrnak tied it 1-1 on a breakaway at 7:06.
Video: BOS@VAN: Pastrnak makes slick move and puts home goal
Bo Horvat put Vancouver ahead 2-1 with a power-play goal at 11:08.
Adam Gaudette made it 3-1 at 5:32 of the second period when he scored off a pass from rookie defenseman Quinn Hughes.
Tanner Pearson put Vancouver ahead 4-1 at 14:48, and Loui Eriksson made it 5-1 at 15:39, each scoring on a rebound.
Elias Pettersson scored off the rush 46 seconds into the third to make it 6-1.
"It was a great game by everybody all the way through the lineup," Horvat said. "It was nice to finally start getting some bounces. I know Loui missed about four open nets in the past two games. For him to get finally rewarded definitely feels good. Then everybody else, the secondary scoring."
Video: BOS@VAN: Pettersson whips Miller's pass into the net
Pastrnak scored his NHL-leading 45th goal on the power play to make it 6-2 at 6:28, when Halak replaced Rask.
Chris Wagner scored at 8:11 to make it 6-3.
After Toffoli's goals, Jake Virtanen scored with 1:45 left for the 9-3 final.
"I don't think we stopped competing, but we weren't tight enough defensively," Wagner said. "They got a couple bounces off guys, and the puck was laying there and then it just got out of hand."
Video: BOS@VAN: Pastrnak notches 45th goal on power play
They said it
"We're still in first place. That's our goal, to finish there. We had a nice run, and typically what we've done in the past is work to start a new one, so that's the goal." -- Bruins coach Bruce Cassidy
"I think we're buying into just winning, beating that team, over the personal side of things. Any time you play that well and put up that many against one of the best teams in the League, it feels really good." -- Canucks forward J.T. Miller, who has 22 points (nine goals, 13 assists) in the past 17 games
Need to know
Pastrnak has 13 points (seven goals, six assists) in the past eight games. ... Hughes, who had two assists, has 17 points (four goals, 13 assists) in the past 14 games and leads NHL rookies with 49 points (eight goals, 41 assists) in 60 games. He is the fourth rookie defenseman in the past 28 NHL seasons with at least 40 assists (Bryan Berard, 40 in 1996-97; Janne Niinimaa, 40 in 1996-97; and Nicklas Lidstrom, 49 in 1991-92).
Bruins: Host the Calgary Flames on Tuesday (7 p.m. ET; NESN, SNW, NHL.TV)
Canucks: At the Montreal Canadiens on Tuesday (7 p.m. ET; TSN2, RDS, SNP, NHL.TV)
Video: Canucks score nine goals in rout of Bruins