Brock Boeser, and Travis Hamonic each had a goal and an assist for the Canucks (28-23-6), who have won five of six. Thatcher Demko made 34 saves.
John Tavares ended a 14-game goal drought and had an assist, and Wayne Simmonds played his 1,000th NHL game for the Maple Leafs (35-16-4), who lost their second straight.
Campbell made 23 saves. He has allowed 19 goals in his past four games (three starts, 0-2-1).
"I'm not happy with giving up any goals ever, so it's not acceptable, but I'm trying to let it roll off a little easier now," Campbell said. "I know I've got better for the team. It's disappointing not getting the win when we played so well."
Vancouver begins a seven-game homestand Wednesday against the Montreal Canadiens.
"What [this win] does is give us that much more belief," Miller said. "We've got a good thing going right now, and we're excited to get a little rest here and start this homestand off and make it hard to play against us these next seven.
"We should fully believe that we can get into the playoffs because that's what we want to play for, and all these home games coming up will be a good opportunity for us."