Jesse Puljujarvi and Zach Hyman scored in regulation for the Oilers, who gave up a late lead. Edmonton also got a pair of assists from Connor McDavid.
Oliver Ekman-Larsson and Quinn Hughes responded for the Canucks.
Edmonton got the game's first goal with three minutes left in the opening period as Puljujarvi showed good hands in front, picking out the rebound from a Darnell Nurse shot before depositing it past Canucks goaltender Thatcher Demko.
Midway through the second, the Oilers were looking for more on a Kailer Yamamoto breakaway, but Demko was able to make the stop.
The Oilers made it 2-0 with three minutes left in the second frame with a pretty three-way passing play finished off when Hyman scored his first as an Oiler into a wide-open net on a perfect feed from Leon Draisaitl.
Vancouver finally got one past Oilers starter Mike Smith on its 32 shot of the night as Ekman-Larsson scored on a power-play blast from the point with seven-and-a-half minutes left in the third.
The Canucks tied the contest with 2:49 on a goal that Smith would likely love to have back as Hughes snuck a shot in short side, eventually sending the game to overtime.
The Canucks continue their six-game road trip -- the longest road swing to start a season in franchise history -- in Philadelphia on Friday. The Oilers remain home to face the Calgary Flames on Saturday.
Notes: It was the third consecutive season that the two teams have played each other in the season-opener? Both teams have had significant changes in the off-season, with the Oilers sporting seven new faces and the Canucks featuring 13 new players? Edmonton went 6-1-1- in pre-season play, while Vancouver was 2-5-0? Forward Colton Sceviour signed a one-year contract Wednesday after being with the Oilers during training camp on a professional tryout.