John Tavares passed ahead to Nylander after a Vancouver turnover in the neutral zone, and his wrist shot from the left face-off circle went over Holtby's glove for his 100th NHL goal.
"I think I had a little stretch before I went into quarantine where I could have scored that 100th goal, so it's nice to get that one early," Nylander said.
The Maple Leafs lost forward Zach Hyman at 10:16 of the second period after a knee-on-knee hit by defenseman Alexander Edler, who was given a major penalty for kneeing and a game misconduct. Toronto coach Sheldon Keefe did not have an update on Hyman.
"He's such an integral part of our group. The elements he brings to our team, you can't replace that," Tavares said. "He plays such a key role for us. I know he was really positive in the room, optimistic, so hopefully nothing too serious."
Matthews, back after missing a 5-2 loss to Winnipeg on Thursday because a wrist injury flared up, scored his NHL-leading 33rd goal off the rush with 19 seconds left in the major penalty to make it 2-0 at 14:57.
Matthews, who hit the crossbar and left post with a shot with 20 seconds left in the third period, has scored nine goals in his past seven games.
"Just kind of let the inflammation and everything settle down and it's feeling much better now, and I felt pretty good tonight," Matthews said.
Horvat scored on breakaway at 16:23 to make it 2-1.
Defenseman Nate Schmidt and forward Jake Virtanen came off the NHL COVID-19 protocol list Sunday as the last two Vancouver players on it, but neither played against Toronto. Forward Tyler Motte and defenseman Olli Juolevi also were out.
NOTES: Tavares has two goals and six assists during a five-game point streak. The assist on Nylander's goal was his 100th with the Maple Leafs. … Canucks forward Tanner Pearson was plus-3 in 16:51 in his first game since spraining his ankle March 17 against the Ottawa Senators. … Demko, Motte and Juolevi each might return Tuesday against Toronto.