Selanne hadn't scored a goal since Oct. 20, matching the longest gap of his two-decade NHL career, and had no points in his last 16 games. The 43-year-old forward finally picked up his 679th career goal in front of Ilya Bryzgalov on a setup from Mathieu Perreault, adding to the 11th-best total in NHL history.

Selanne recently got a text from Kariya, his longtime Anaheim teammate, telling him to get into "the dirty areas" on the ice.

"He said, 'Just go to the net, and good things happen,'" Selanne said. "I've been waiting a long time. Obviously, it's a big relief. It's a little easier because we're winning. I've had some good chances lately, and it didn't go in. Hopefully, this is going to be a good confidence boost for myself."

Jonas Hiller made 23 saves to help the Ducks improve to 13-0-2 at Honda Center. Corey Perry's seven-game goal streak ended, but his linemates connected for the deciding score in the Ducks' 15th win in their last 17 meetings with Edmonton.

Nick Bonino also scored as the Ducks shook off early rust in their return from three days off to complete a three-game homestand. Anaheim is the only NHL team without a regulation loss at home, extending the second-longest such streak to open a season in the shootout era.

"We played a lot more desperate after they tied it up," Penner said. "Our line wasn't very good all game, but sometimes you need those breaks. ... We haven't had a lot of home games, so we put a lot of emphasis on them."

Penner beat Bryzgalov with a wrist shot from the circle after a setup from Getzlaf, who has scored in each of his last 16 games. The Anaheim captain's streak only counts as 14 games because of an injury absence.

Sam Gagner scored the tying goal with 9:34 to play for the Oilers, who have lost three straight. Ryan Nugent-Hopkins also scored, and Bryzgalov stopped 31 shots.

"I wish I could find something in our game that was deficient, but we played strong," Edmonton coach Dallas Eakins said. "I can't find a whole lot wrong with our game there. I thought, to a man, our guys played excellent. It's a game of mistakes, but I thought our mistakes tonight were honest ones, so it's hard to place blame. It was one of those nights where you thought you might at least get a point, if not both."

Edmonton's Corey Potter got a major and a game misconduct for checking Bonino from behind in the second period, sending the Anaheim center face-first into the boards. Bonino wasn't hurt, and the Ducks did nothing with the ensuing five-minute power play.

Selanne's goal put Anaheim in control until Gagner took advantage of a mix-up near the Ducks' blue line and broke past rookie defenseman Hampus Lindholm, beating Hiller with a wobbly backhand for just his fourth goal of the season.

"I thought we were in a good spot (after that goal) because we were playing well, but we've got to figure out a way to close that game out," Gagner said. "We're not happy. I mean, you've got to find a way to at least get it to overtime. We played a solid game."

The injury-plagued Ducks finally got some good news before the game, welcoming back defenseman Francois Beauchemin and Perreault. Beauchemin was a plus-15 before missing the last 10 games with an upper-body injury, while Perreault missed four games with a lower-body injury.