Ryan Nugent-Hopkins had two assists playing his 999th NHL game in his hometown and Tristan Jarry made 31 saves for his first shutout with the Oilers (24-17-8), who have points in six of seven (4-1-2).
Connor McDavid had an assist for Edmonton after his career-high 20 game point streak (19 goals, 27 assists) ended in a 1-0 loss against the New York Islanders on Thursday.
Nikita Tolopilo made 29 saves for the Canucks (16-27-5), who have lost 10 in a row (0-8-2).
Edmonton was without center Leon Draisaitl, their second-leading scorer behind McDavid, for the first time this season after announcing in the morning that he took a leave of absence to attend to a family illness in Germany and is expected to return later next week.
It didn’t hurt their offense in the second period.
Roslovic started the outburst with a rush goal at 3:11, faking a shot then sliding a backhand between the legs of Tolopilo from below the left face-off circle to make it 1-0.
Vancouver challenged for goalie interference because Curtis Lazar bumped into Tolopilo’s left pad, but a video review determined Lazar was pushed in by Max Sasson and the goal counted.
Zach Hyman made it 2-0 on the power play at 6:49 by chipping a backhand from close range in off the leg of Canucks defenseman Filip Hronek on the backdoor.
Edmonton scored on its next four shots over a 4:52 span.
Kapanen scored on a breakaway wrist shot past Tolopilo’s blocker at 11:42 to make it 3-0.
Roslovic scored his second of the game at 14:31 to make it 4-0, driving the net off the rush to redirect an area pass from Isaac Howard through the legs of a sprawling Tolopilo.
Kapanen made it 5-0 with his second goal at 15:08, taking a cross-ice backhand pass from Nugent-Hopkins, who spun off an Elias Pettersson check in the corner, and one-timing it past Tolopilo from the right slot.
Vasily Podkolzin converted a loose puck after McDavid had it knocked away while driving the net, firing a low glove shot from the right dot to make it 6-0 at 16:34.
It was Jarry’s second game back after missing 11 with a lower-body injury. His best saves came in a scramble around his crease shortly before Roslevic’s first goal. It was his second shutout this season, the 23d of his career and his first since being acquired from the Pittsburgh Penguins on Dec. 12 in a trade that sent goalie Stuart Skinner the other way.