Jack Roslovic, Mark Scheifele and Adam Lowry, with an empty-net goal, also scored for the Jets (9-7-1), who have points in their last four games (3-0-1).
Connor Hellebuyck made 31 saves for Winnipeg, which has won nine consecutive games against the Canucks.
J.T. Miller scored his team-leading eighth goal of the season for the Canucks (9-5-3), who’ve gone 0-2-1 in their past three outings.
Thatcher Demko stopped 31 shots for Vancouver, which was coming off a 5-2 road loss to Chicago the previous night.
Winnipeg made changes to its top two lines because of veteran centre Bryan Little’s injury in Tuesday’s loss to New Jersey. The puck from a one-timer shot by teammate Nikolaj Ehlers hit Little near his left ear, perforating his eardrum.
Jets right-winger Blake Wheeler was moved to play centre on the second line between Ehlers and Roslovic. Scheifele was in the middle of Connor and Patrik Laine.
The first period was scoreless and Winnipeg led 2-1 after the second.
Vancouver outshot the Jets 13-9 in the first frame, which included an early scare when Ehlers was tripped up by the stick of Canucks defenceman Tyler Myers, who signed as a free agent July 1 after five seasons in Winnipeg.
Ehlers slid into the boards and was down for a couple minutes, but skated slowly to the bench and quickly returned to the game.
Later in the period, Myers was recognized by the arena announcer for his time with the Jets and received cheers from the crowd at Bell MTS Place.
Miller got Vancouver on the scoreboard when he re-directed a shot by Troy Stecher past Hellebuyck at 6:53 of the second period. Miller has two goals and a pair of assists in a four-game point streak.
The Jets had a pair of power plays 16 seconds apart in the middle period and capitalized on the second one when Roslovic flipped in his own rebound at 11:54 to tie it 1-1.
Scheifele broke the tie exactly five minutes later when he used a rebound off a Connor shot to beat Demko.
Canucks defenceman Chris Tanev took a hard shot to his right leg from Laine earlier in the period and limped to the dressing, but returned to action.
Winnipeg had a 28-22 advantage on shots on goal after the second.
Just nine seconds after Hellebuyck made a glove grab on a close-in shot by Bo Horvat, Connor stole the puck from Myers and went in alone to beat Demko with a high shot at 13:35 for his his sixth goal of the season.
Facing an empty net, Jets forward Andrew Copp passed back to Lowry so he could score his first goal, and his first point, of the season with 1:45 left in the third.
Winnipeg plays the third game of its four-game homestand Sunday afternoon against the Dallas Stars. Vancouver goes home for four straight games starting Sunday against New Jersey.