VANCOUVER, British Columbia -- David Perron recorded his second career hat trick, and fellow left winger Jesse Joensuu scored the winning goal as the struggling Edmonton Oilers beat the Vancouver Canucks 4-2 Monday night at Rogers Arena.

Both of Perron's hat tricks have come against Vancouver.

Joensuu took advantage of a failed Canucks clearing attempt to make it 3-2 for Edmonton at 2:20 of the third period. It was his third goal of the season.

Perron scored his third of the night and team-leading 22nd of the season into an empty net.

The Oilers, 3-8-3 in their previous 14 games before arriving in Vancouver, won on consecutive nights for the first time this season.

It was just the eighth win on the road for Edmonton, the worst total in the Western Conference.

Both teams played Sunday, and it showed in sloppy play from both sides Monday.

The Oilers (17-32-6) took a 2-1 lead out of the first period, despite having just five shots on Vancouver goalie Roberto Luongo.

Edmonton did not record its sixth shot until the second period was 7:30 old.

Vancouver (27-18-9) managed just one total shot on goal during two power plays.

The Canucks' power play is ranked 28th in the league at 14 percent, but in the past six games, it was even worse -- 4 percent (1-for-25).

The loss marred the return of Canucks center Jordan Schroeder, who had two goals in his first game back in more than three months. Both goals went in off the skate of Edmonton defenseman Corey Potter.

His second goal, at 2:39 of the second period, leveled the score at 2-2.

With Canucks centers Henrik Sedin and Mike Santorelli out due to injuries, Schroeder played the middle on the third line with right winger Zack Kassian and left winger David Booth.

Schroeder is skilled offensively, but he is just 5-foot-8 and 175 pounds.

He was a surprise pick of the Canucks when it came their turn at the 2009 NHL entry draft with the 22nd pick of the first round.

The former Minnesota Golden Gopher played 31 games with the Canucks last season, scoring three goals and adding six assists.

This season, he broke his ankle blocking a shot in the preseason then rebroke it in just his third game back, on Oct. 19.

He missed 44 games after have three screws surgically inserted into his left ankle.

NOTES: Canucks C Henrik Sedin missed his fourth consecutive game with a rib injury. The Vancouver captain had the second-longest ironman streak among active players before he was forced to sit out after consecutive start No. 687. ... Vancouver RW Zack Kassian and Edmonton LW Luke Gazdic had words during the warm-up, but nothing came of it once the game started. Kassian broke the jaw of Oilers C Sam Gagner in the preseason with a high stick. ... Vancouver coach John Tortorella missed his fourth game of a six-game suspension. Associate coach Mike Sullivan, who was head coach for two seasons in Boston in the mid-2000s, is replacing Tortorella. ... Edmonton LW David Perron could have been a Canuck, but Vancouver selected C Patrick White out of high school with the 25th pick in the NHL entry draft. Perron, the next player selected, has 105 goals in 391 NHL games; White is playing in Germany.