Charlie Coyle and Zach Werenski each scored a power-play goal, and Elvis Merzlikins made 30 saves for the Blue Jackets (21-19-7), who have won three straight, the past two under coach Rick Bowness, who replaced Dean Evason on Monday.
Brock Boeser scored, and Kevin Lankinen made 32 saves for the Canucks (16-26-5), who have lost nine in a row (0-7-2), including all six on their road trip that concluded Thursday.
Coyle made it 1-0 at 17:25 of the first period. He had his back to Lankinen when he took a pass from Marchenko at the left post and went forehand to backhand before lifting the puck under the bar for his fourth goal in three games.
Marchenko upped the lead to 2-0 at 5:49 of the second period. After Columbus forward Adam Fantilli won a face-off, Marchenko outmuscled Marcus Pettersson for the puck near the left wall and stick-handled toward the net before scoring with a wrist a shot to the upper right corner.
Werenski then extended it to 3-0 at 10:14, scoring with a wrist shot from the right circle for his team-leading 18th goal of the season.
Boeser cut it to 3-1 on the power play at 14:09. He scored from the left circle off a cross-ice pass by Elias Pettersson for his first goal in 22 games since Nov. 28.
Johnson made it 4-1 on the rush at 10:13 of the third period. Boone Jenner skated down the right wing and fed a pass to Johnson in the slot, where he slid the puck through the five-hole.