Jannik Hansen, Chris Higgins and Yannick Weber also scored for the Canucks (13-6-0) who have won all four of their games against Edmonton this season and three of their last four games overall.
Canucks goalie Ryan Miller also continued his personal ownership of the Oilers, improving to 11-0 lifetime against Edmonton, now the longest active win streak against a single team in the NHL.
Steven Pinizzotto, Teddy Purcell, Boyd Gordon and Andrew Ference responded for the Oilers (6-11-2) who have lost four in a row and have yet to win a game this season against a fellow Western Conference team, dropping to 0-9-1 in that category.
The Canucks went up 1-0 with four minutes to play in the first period, thanks to a short-handed goal. Shawn Matthias picked off a Ryan Nugent-Hopkins pass at the Edmonton blue-line and sent Hansen in on a breakaway, where he was able to beat Oilers goalie Ben Scrivens glove-side.
It looked like the Canucks added another goal by Daniel Sedin just over a minute later, but the Oilers caught a huge break as it was ruled Alexandre Burrows had interfered with Scrivens in a bit of a questionable call as it appeared the Edmonton goalie embellished the contact.
Vancouver had 10 first period shots to just four from Edmonton on Miller.
The Canucks took a two-goal lead two minutes into the second period on the power play as a faceoff win came right back to Vrbata in the slot and he beat Scrivens with a rocket of a shot for his seventh of the season.
Edmonton got that goal back three minutes later as a Pinizzotto wrist shot seemed to freeze Miller, who barely reacted before the puck was in the net. It was Pinizzotto's first career NHL goal, coming in his first game of the season for the Oilers.
Vancouver made it 3-1 as a bad pass by Edmonton defender Keith Aulie was picked off just outside the Edmonton zone, allowing Higgins to wire a long shot past Scrivens.
The Oilers, however, came flying back with a pair of quick goals to knot the game 3-3.
Edmonton struck on a power play with eight-and-a-half minutes left in the second period as the faceoff came back to Purcell at the point and he blasted it into the net.
Just 11 seconds later, Gordon battled for a puck deep in the Vancouver zone and was able to bank a shot off of Miller's skate and in. Pinizzotto, who had a first period fight, picked up an assist on the play for the Gordie Howe hat trick.
Vancouver surged back ahead with three minutes left in the second as Vrbata scored his second of the game, picking the top corner from the top of the circle on the power play.
Edmonton made it 4-4 six minutes into the third frame as Ference scored his first of the season on a long shot through traffic.
The Canucks once again took the lead with eight-and-a-half minutes left as Daniel Sedin made a perfect pass to a hard-charging Weber, who directed the shot off of Scrivens and in for his first of the year to make it 5-4.
The Oilers looked like they may have tied it once more with 10 seconds left, but the goal was immediately waved off as it was ruled David Perron had kicked the puck off Miller's blocker and into the net.
The Canucks return home for three games, beginning on Thursday against the Anaheim Ducks. Edmonton plays the fourth game of a five-game homestand on Friday against the New Jersey Devils.
Notes: The two teams have been awfully familiar with each other in the early running of the season. It was the fourth regular season meeting between the Oilers and Canucks, sixth if the pre-season is included. Vancouver swept the first three regular season meetings. The two teams won't meet again until April 11 in the final game of the regular season for both clubs… Canucks forward Zack Kassian returned to the lineup. Linden Vey came out to make room… Vancouver defenceman Luca Sbisa has also been cleared to return, but remained on the sidelines in favour of Yannick Weber… The Oilers made one lineup change, calling up Pinizzotto to replace healthy scratch Jesse Joensuu on a line with Matt Hendricks and Boyd Gordon… For the first time since 2005/2006 the Oilers are averaging more shots for per game (30.1) than shots against (29.9)… Henrik and Daniel Sedin came into the game with a combined 150 points in 159 games against the Oilers.