It was the Canucks' first game since they clinched the Presidents' Trophy by beating Los Angeles 3-1 on Thursday.
Foster, who returned to the lineup after missing four games with a neck injury, opened the scoring at 16:46 of the first period with a power-play blast from the point that hit the post, then hit the bar at the back of the net and bounced out of the net. Referee Steve Kozari initially waved off the goal, but video replay showed the puck did cross the goal line.
The Oilers' 29th-ranked power play continued to generate offense in the second period as Foster set up Eberle at the side of the Canucks net, and the Edmonton rookie beat Cory Schneider short-side at 2:53, 12 seconds into their second man advantage.
"It felt great, I don't know how to explain it," said Foster who scored his seventh goal of the season. "The year hasn't gone the way I wanted, but to score another goal and get to seven - hopefully I can get to eight or nine for the rest of the season.
"It'll be a good feeling."
Edmonton made it 3-0 at 9:59 when Omark one-timed a Teemu Hartikainen feed past Schneider for his fifth of the season. Hartikainen had a chance to make it 4-0, on a penalty shot late in the second, but missed the net.
Andrew Cogliano, the team's leader in games played at 78, assisted on Eberle and Omark's goals.
"To be able to beat the best team in the League, it feels good" admitted Cogliano. "It's a small consolation for the season we're having. Teams like (Vancouver), we look up to and want to play good against so it was a good win for us."
Alexandre Burrows got the Canucks on the board at 15:20 of the second, beating Devan Dubnyk blocker-side for his 25th goal of the season. Henrik Sedin's assist on the goal gives him 16 points in his last 12 games as he trails his brother Daniel by eight points for the League lead.
"We were five percent off on everything we did," said Henrik, who has a League-leading 73 assists. "You can't have that in this League, it shows you how competitive this league is and we didn't come close to playing good enough."
Any comeback hopes the 18,860 fans might have had ended when Magnus Paajarvi made it 4-1 one-timing a Omark feed past Schneider with 9:46 left in regulation.
Edmonton forward Gilbert Brule played 4:32 in the first period, but did not return for the second. The team said Brule was suffering from light-headedness and kept him out of the final 40 minutes as a precaution.
Dubnyk made 37 saves and improves to 11-12-8 on the season. Schneider who came into the game riding a six-game winning streak made 30 saves and dropped to 15-4-2 on the season.
"It was unbelievable, we deserved that win, every little bit of it," said Dubnyk, who picked up the Oilers last win nearly a month ago. "We scored four goals, we had plenty more chances to score, we controlled the puck in their end a lot of the time and it was great to see."
With the win the Oilers are now 1-4-0 against the Canucks. The teams play again in Edmonton on Tuesday. Canucks coach Alain Vigneault says Roberto Luongo (37-14-7) will start the rematch at Rexall Place.
|PPG - Kurtis Foster (7) ASST: Ryan Jones (7), Jordan Eberle (23)|
1 - 0 EDM
|PPG - Jordan Eberle (18) ASST: Andrew Cogliano (22), Kurtis Foster (13)|
2 - 0 EDM
|Linus Omark (5) ASST: Teemu Hartikainen (2), Andrew Cogliano (23)|
3 - 0 EDM
|Alexandre Burrows (25) ASST: Henrik Sedin (73), Kevin Bieksa (15)|
3 - 1 EDM
|Magnus Paajarvi (13) ASST: Linus Omark (19), Chris VandeVelde (1)|
4 - 1 EDM
|Jordan Eberle Tripping against Henrik Sedin|
|Aaron Rome Tripping against Chris VandeVelde|
|Victor Oreskovich Hooking against Andrew Cogliano|
|Jim Vandermeer Tripping against Chris Higgins|
|Jean-Francois Jacques Fighting against Tanner Glass|
|Tanner Glass Fighting against Jean-Francois Jacques|
|Chris VandeVelde Hi-sticking against Alexandre Burrows|
|Magnus Paajarvi Boarding against Keith Ballard|
|Aaron Rome Elbowing against Jean-Francois Jacques|