Robert Nilsson and Andrew Cogliano also scored for the last-place Oilers, who were coming off consecutive wins over Detroit and San Jose and have won seven of their past nine at home.
Cogliano said the Oilers caught Luongo on an off night.
"He was struggling," he said. "He struggled early in the first and I just threw it at the net and it somehow found its way in. He's one of the top goalies in the league and that's not going to happen often, but when it does, you take them and run."
Oilers coach Pat Quinn credited his own goalie Jeff Deslauriers, who started with Devan Dubnyk missing the game with an illness, for being a major factor with 31 saves.
"He was really sharp tonight and confident and in mental control," he said. "Our guys battled hard all night long and I like how they played around him. But he was good all night long. He was our best player."
The Canucks are five points ahead of Colorado for first place in the Northwest Division.
Luongo took much of the blame for the latest loss on his own shoulders after allowing three goals on 22 shots.
"I made some good saves but unfortunately I should have had all three of their goals," he said. "I've got to find some consistency in my game. It was a bad game every 12 games or so, but now it is every two or three games. I have to get my swagger back."
Vancouver coach Alain Vigneault credited his goalie for admitting he was off his game early on.
"The one thing about Roberto is that he takes responsibility for his performance," he said. "All three goals tonight I am sure he would like to have back. That said we had plenty of Grade A chances to tie it up and we didn't.
"Right now he is fighting with a bit of a consistency issue. Some athletes will go through that in their career," he said.
Edmonton scored on its first shot at 3:02 of the first when Gilbert sneaked out from the corner and lifted a puck that got between Luongo's pad and the post.
"I was as surprised as he was when that puck went in," Gilbert said. "I was just trying to get the puck on net, actually I was trying to get a rebound and I think it kind of threw him off guard too."
The Oilers made it 2-0 at 6:58 as Nilsson staved off Vancouver defenseman Christian Ehrhoff and cut in on net for his 11th goal of the season.
Vancouver got on the board when Michael Grabner slid the puck through the top of the crease to Raymond who had a wide open net to make it 2-1.
Edmonton made it 3-1 at 8:01 of the second as Cogliano fluttered a shot from the top of the faceoff circle that slipped through Luongo's legs.
Vancouver narrowed the gap once again at 16:12 of the second period as Henrik Sedin sent a pass to twin brother Daniel during a scramble in front and he got his 200th career NHL goal to make it 3-2.
Dubnyk, who had got his first two NHL wins in the Oilers past two games, missed Tuesday's game. He came down with flulike symptoms on Tuesday morning and the team opted to keep him under quarantine, setting off a frantic search for a backup goalie for Deslauriers. The Oilers called in Nathan Deobald, a 5-foot-8 third-string goalie with the University of Calgary that has played one game for the Dinos this year.
Notes: Oilers forward Ales Hemsky resumed skating on Monday after season-ending shoulder surgery and reports that his recovery is going well. ... Vancouver forward Pavol Demtira missed the game due to personal reasons. ... Mason Raymond took his spot on the second line. ... Defenseman Dean Arsene was called up by Edmonton to replace injured Theo Peckham for the game. ... It was the sixth and final meeting between the two teams with Edmonton winning the first game before Vancouver bounced back to win the next four. ... It was the Canucks' first road game since their 14-game road trip surrounding the Winter Olympics in Vancouver.
|Tom Gilbert (3) ASST: Fernando Pisani (3), Shawn Horcoff (19)|
1 - 0 EDM
|Robert Nilsson (11) ASST: Marc-Antoine Pouliot (6), Ryan Potulny (12)|
2 - 0 EDM
|Mason Raymond (23) ASST: Michael Grabner (4), Ryan Kesler (46)|
2 - 1 EDM
|Andrew Cogliano (9) ASST: Tom Gilbert (15), Gilbert Brule (20)|
3 - 1 EDM
|Daniel Sedin (21) ASST: Henrik Sedin (68), Alexander Edler (31)|
3 - 2 EDM
|Christian Ehrhoff Holding against Dustin Penner|
|Taylor Chorney Holding against Darcy Hordichuk|
|Aaron Johnson Hooking against Michael Grabner|
|Dean Arsene Cross checking against Kevin Bieksa|
|Tanner Glass Slashing against Ethan Moreau|