After each team traded power play chances, the Canucks finally connected on the game's first goal.
Mattias Ohlund picked up the puck at the left point after Brendan Morrison cleared the puck around the side boards. His slap shot eluded a screened Dwayne Roloson with Matt Cooke in front.
Edmonton went on its first full-length power play when Taylor Pyatt was sent off for hooking but the Canucks were able to kill it off.
With four minutes left and Vancouver on the power play, the two sides got into some pushing and shoving which resulted in Shawn Horcoff
and Henrik Sedin getting roughing penalties.
Marty Reasoner came within inches of tying the game as his shot rang off the far post high blocker side behind Luongo.
Roloson made a pair of big saves late in the period to keep it a two-goal game. He stopped Alex Burrows on the initial shot from the right circle and then came across to deny Jan Bulis on the rebound.
After one period, shots on goal were 11-8 for Vancouver.
Zack Stortini had a pair of chances early in the second to tie the game for Edmonton. Reasoner rifled the initial shot on goal and Stortini was perched at the left side of Luongo. He jammed at the puck several times but couldn't get it past the Canucks netminder.
Vancouver moved in front 2-0 after Henrik Sedin took a slap pass from his brother Daniel at the right point. Henrik's shot in the high slot went over the shoulder of Roloson.
At the 12:03 mark, Marty Reasoner scored a power play goal to draw the Oilers within one. Luongo had lost his stick and Reasoner was able to get a stick on the puck during a mad scramble in front.
After two periods, Vancouver had a 24-22 shot lead.
Some solid forechecking five minutes into the third resulted in a Canucks hooking penalty on Brendan Morrison.
On the ensuing power play, Luongo had trouble handling Joffrey Lupul's shot from the hash marks and Horcoff almost shoveled in the rebound.
As the penalty expired, Bergeron got caught up ice just as Marc Chouinard chipped the puck into the boards past Jason Smith to send his team on a two-on-none. Chouinard backhanded it in-close past Roloson to make it a 3-1 game.
The line of Hemsky, Sykora and Torres was reunited for a shift in the third period and almost got a goal back for the Oilers. Torres made a nifty move between the legs before centering it to Hemsky but Luongo got across and made the save.
Late in the game, Lupul drove Daniel Sedin into the Vancouver net which set off some fireworks between the two clubs. Ladislav Smid
took the puck end-to-end before circling the goal and putting it on goal. Petersen crashed the net and jammed the puck in to make it 3-2.
47 seconds later, Markus Naslund backhanded it from the slot and beat Roloson through the five-hole regaining Vancouver's two goal lead.
But the Oilers didn't give up. With 37 seconds to play, Joffrey Lupul took the puck at the side of the net and wristed it over the right pad of Luongo.
Edmonton pressed to tie it up but the Canucks eventually netted the empty netter. NOTES:
Jarret Stoll left the game in the first period with a concussion and did not return.