Defenceman Kyle Burroughs, with his first NHL goal, also scored for the Canucks (6-10-2) who were 0-4-1 in their previous five games. They were 0-13 on the power play during that stretch.
Nikolaj Ehlers, on a pretty individual play, and Pierre-Luc Dubois scored for the Jets (9-4-4) who lost their second consecutive game.
Canuck goaltender Thatcher Demko stopped 36 shots.
Eric Comrie stopped 26 shots for the Jets.
The win was just the third in 12 games for Vancouver but may cool the temperature of disgruntled Canuck fans who have been calling for general manager Jim Benning and coach Travis Green to be fired. There seemed a little extra enthusiasm singing ``Sweet Caroline'' in the third period.
Vancouver was 2-3 on the power play and didn't play shorthanded all night.
The Canucks, who came into the game with the league's worst penalty kill (60.3 per cent) took advantage of the Jets having the second worst (64.3 per cent) when Winnipeg was assessed an extra penalty during a first-period scrum.
Ekman-Larsson took a pass from Elias Pettersson in the high slot and took a seeing-eye shot that travelled through traffic and past Comrie at 13:51. It was his second goal of the year.
Burroughs made it 2-0 at 3:12 of the second on another shot through traffic that hit the left post and into the net.
Ehlers cut the lead in half just a minute later. He scooped up a loose puck in the Vancouver zone, skated around defenceman Quinn Hughes and scored his sixth of the season.
Garland notched Vancouver's second power-play goal at 6:54 of the second after Blake Wheeler was called for high-sticking. Alex Chiasson found him at the top of the faceoff circle and he beat Comrie with a bullet of a shot over the goaltender's shoulder.
Dubois made it interesting with his 10 goal of the season with 2:28 remaining.
Demko, who was playing his eighth career game against the Jets, made some big saves. Early in the first period he stopped Ehlers' shot from a sharp angle, then blocked Mark Scheifele's rebound attempt. Later he stopped Andrew Copp on a backhand.
Just a couple minutes into the second he got a toe on an Evgeny Svechnikov backhand.
NOTES: Pettersson's assist on the first goal broke a four-game pointless streak. ? The Canucks had scored one or less power-play goals in the last seven games. ? The Jets lost 2-1 to the Oilers in Edmonton in shootout Thursday night. ? Vancouver forward Justin Bailey cleared waivers and was assigned to the Canucks AHL team in Abbotsford, B.C. ? Proceeds from the Canucks 50/50 draw went to flood relief in B.C.