Laine put the puck into an empty net with less than two minutes to go seal the victory.
The Jets had 49 shots on goal, the most allowed by Vancouver in a game this season.
Winnipeg opened the scoring just over a minute in after Markstrom tried to clear the puck along the boards. Little collected the puck at the point and hammered it in as Markstrom slid back into his net.
The Canucks responded with a power-play goal after Dustin Byfuglien was called for slashing.
Goldobin sent a behind-the-back pass to defenseman Ben Hutton, who fed Pettersson. The Canucks’ rookie fired a shot past Hellebuyck, tying the game.
Petterson has 19 goals in his first 17 NHL games.
Markstrom faced a barrage of 23 shots in the opening period, including a hard wrister from Nikolaj Ehlers that went off his blocker.
The rebound popped out to the side and Scheifele poked it in to give the Jets a 2-1 lead.
Winnipeg added another first-period goal when Connor scored on a power play. Connor’s point streak (four goals, three assists) is at five games.
Midway through the second period, Pettersson and Hutton collided while trying to clear the puck from in front of the Vancouver net.
Laine collected the puck and got off a quick wrist shot that sailed past Markstrom to make it 4-1 for the Jets.
Motte got one back for the Canucks, scoring his second goal of the year on a short-handed breakaway.
It was Goldobin who brought Vancouver within one. The right-winger slid the puck across the crease, forcing Hellebuyck to sprawl, then tucked it into the net behind the netminder’s skate.
NOTES: Laine registered two goals in the third period for the sixth three-goal game of his career.
Jets: At Calgary on Wednesday.
Canucks: At Anaheim on Wednesday.