Vancouver came into the game 0-for-15 on the power play, but Horvat made it 1-0 with a one-timer from the high slot on the man-advantage at 11:07 of the first period.
"We know that we can be difference-makers each and every night," Boeser said of the power play. "We felt we needed to be better, even though we were getting good looks. When we got one, it just felt like the flood gates were going to open and then we got a few more. It was huge to get that going."
Toffoli scored his first goal for Montreal on a partial breakaway with wrist shot glove side on Holtby to tie it 1-1 at 1:37 of the second period.
"He's a pretty lethal shooter," Horvat said of Toffoli, who scored 10 points (six goals, four assists) in 10 games for the Canucks last season after being acquired in a trade with the Los Angeles Kings. "I don't know what it is about this building, but he loves scoring here."
Tyler Motte put the Canucks back ahead 2-1 at 4:25 on a 2-on-1, but Toffoli tapped in a backdoor pass from Nick Suzuki on a power play to tie it 2-2 at 5:27.
"Our line has been playing really well to start the season, just not getting the luck and the bounces and obviously tonight was one of those nights for us," Toffoli said. "Hopefully we can continue it and help the team win games here."
Boeser scored a power-play goal on rebound in the low slot to give the Canucks a 3-2 lead at 11:13.
Brendan Gallagher scored his first of the season on a 2-on-1 with Tomas Tatar to tie it 3-3 at 18:25 of the second period, but Horvat scored Vancouver's third goal on the power play 3:24 into the third period to make it 4-3.
"We didn't lose the game because of dumb penalties," Canadiens coach Claude Julien said. "But at the same time, I've said many times already we need to be a little bit more disciplined in those situations."
Jesperi Kotkaniemi, the center on Toffoli's line who had an assist on his first goal, tied it 4-4 at 10:14 from the high slot following a turnover by Tyler Myers.
"I think it's a timing thing," Kotkaniemi said of his line. "We didn't really have any preseason games with the team, so a couple of new guys and it always takes a little time to get used to playing with new guys, and I think with our line we're getting there day by day."
NOTES:The Canucks lost defenseman Alexander Edler in the second period because of an undisclosed injury, and defenseman Travis Hamonic left the game late in the third with an undisclosed injury as well. Vancouver coach Travis Green did not have an update on either player after the game.