"It was the first game all year where I can say that everybody played well," MacTavish said. "It was the first real complete 60-minute game we have played all year. Normally, there have been patches of the game where there are some poor performances, but everybody did their job tonight. That was the first sign of a complete game by everyone this year. It was an important game for us."
Dwayne Roloson made 23 saves for his first shutout in two seasons and 23rd in 11 NHL seasons.
"It was important to get a win like this, especially in our own building where we haven't played our best hockey," Roloson said. "Tonight was probably one of our best games of the year. We played unbelievable."
The Canucks went 2-4-1 on their seven-game trip to drop to 16-11-3.
"I really don't have one positive thing to say about this game," Canucks coach Alain Vigneault said. "We got outplayed. We got out-everythinged in all areas. They deserved to win hands down and they did. We had two chances after 40 minutes. That's quite impressive. That tells you a lot about our game tonight."
Edmonton scored 49 seconds into the game when Penner beat Curtis Sanford with a backhander. The Oilers had a good opportunity to extend the lead midway through the first with an extended 5-on-3 advantage, but failed to score.
About a minute after Shawn Horcoff's shot hit the post, Edmonton took a two-goal lead with 1:33 left in the second period. With the teams playing 4-on-4, Hemsky led a 3-on-1 rush and fired a shot past Stanford's glove.
Edmonton completed the scoring on Nilsson's breakaway at 2:21 of the third.
Nilsson returned to the lineup after missing four games because of a shoulder injury. ... The game was the first of three between the teams in 13 days.