Mattias Ohlund added two goals and Sami Salo and Jan Bulis one apiece for the Canucks while Marc-Antoine Pouliot and Shawn Horcoff answered for Edmonton.
With their third consecutive victory the Canucks (20-18-1) took over sole possession of first place in the tight Northwest Division.
The Oilers (18-17-2) slipped three points back of the leaders and have now won just two of their last nine games.
The Canucks struck first 8:38 in as Markus Naslund was able to feed a bouncing puck to Jan Bulis, who had an easy tap in past Edmonton starter Jussi Markkanen.
Vancouver goalie Roberto Luongo made a couple of huge stops to keep his team in front after the first.
The Canucks added to their lead on the power play just two minutes into the second as Daniel Sedin did a masterful job of deflecting a point shot into the top corner past Markkanen.
Vancouver then jumped ahead by four with a couple late second-period goals.
One second after an Oilers penalty had expired, Sami Salo blasted a bullet glove side past a partially screened Markkanen. Less than two minutes later, the Canucks got another power-play goal when Toby Petersen whiffed on a clearing attempt and Mattias Ohlund took advantage to make it 4-0 after two periods of play.
Luongo ended his own shutout bid 40 seconds into the third when he mishandled a puck behind the Canucks net and Ryan Smyth was there to feed it in front to Marc-Antoine Pouliot, who chipped the puck in.
But the Canucks were able to restore their advantage on Ohlund's second of the game, as he picked up a pass as he came out of the penalty box and the beating Markkanen with a backhand shot.
The two teams traded goals in the final few minutes with Shawn Horcoff and Daniel Sedin trading goals with less than four minutes remaining to make for a 6-2 final. Potential all-star Rory Fitzpatrick got an assist on Sedin's goal, his first point of the season. Fitzpatrick, a journeyman defenceman, has been the subject of an internet campaign aiming to have him voted in to the all-star game.
The Oilers return to the ice again on New Year's Eve as they travel to Calgary for another chapter of the Battle of Alberta. The Canucks play next in Calgary on Tuesday.
Notes: Saturday marked the 25th anniversary of a historic hockey moment on Edmonton ice. On Dec. 30, 1981, Wayne Gretzky scored five goals against the Philadelphia Flyers to get to a record 50 goals in just 39 gamesa Forward Jeff Cowan made his Canucks debut in the match after being claimed on waivers earlier in the day from the Los Angeles Kings.