Jason Smith and Toby Petersen also scored for the Oilers (23-20-4), who've won two straight and four of their last six games. Teemu Selanne had the lone goal for the Ducks (30-11-8), who have just two wins in their last 10 games.
Anaheim opened the scoring at 6:27, thanks to an Edmonton miscue. Marc-Andre Bergeron coughed up the puck to Selanne deep in the Oilers zone and the veteran winger beat goalie Dwayne Roloson to the glove side for his 30th goal of the season.
Edmonton surged ahead with two goals late in the second.
Smith tied the game when his shot from the point at 18:55 found its way through a maze of players and Anaheim goalie Ilya Bryzgalov's legs. Just 27 seconds later, a bouncing puck found it's way to Petersen in front of the Ducks net and he batted it in.
Edmonton went ahead 3-1 at 8:35 of the third when Shawn Horcoff's centring pass hit Selanne's skate, then went in off Smyth's stick. The Oilers forward added his 23rd goal of the season at 13:47, deflecting a perfect pass from Horcoff past a helpless Bryzgalov.
Both teams have Calgary as their next opponent. The Ducks play the Flames on Friday before Edmonton hosts the Flames on Saturday.
NOTES: Thursday's game was a hot ticket in Edmonton earlier this year as fans that couldn't get into the match Nov. 28 to give former Oilers defenceman Chris Pronger a rough welcome back to
town viewed this as a second chance. But they were denied the opportunity to give Pronger another round of boos with the Ducks star out since New Year's Eve with a broken foot . . . Oilers forward
Jarret Stoll left the game midway through the first with a fractured nose after a hit along the boards and did not return due to dizzy spells . . . Edmonton's Ales Hemsky was a late-day scratch with an upper body injury. He is listed as day-to-day . . . Selanne's first period goal marked the ninth time in his career he has managed to hit the 30-goal plateau.