O'Donnell's rare goal came on a point shot that went untouched through several legs to put the Kings ahead for good.
"It had been a while," he said. "It was a big goal for the team, too. We lost a tough game to Vancouver on Monday. It was our ninth game in 15 nights, coming into a tough building and playing a team that had been playing pretty well.
"Moving into first in the West is a real shot in the arm. We are starting to really believe in ourselves."
Kings alternate captain Matt Greene credited goalie Jonathan Quick for preventing the Oilers from completing a comeback after trailing 2-0.
"They came back on us and thankfully he was able to keep us in it," he said. "They were all over us in the third. It's huge for this team to get this win. We were playing back to back and they had been hot lately."
Sheldon Souray and Ryan Potulny scored for the Oilers, who had a five-game winning streak snapped. It was Edmonton's best run since 2006.
"I haven't felt angry this year yet, but I am angry now about how we played," Oilers coach Pat Quinn said. "How could you like the result? We were the team that was supposed to be rested and fresh. I don't know if there is any excuse for being dumb.
"We don't shoot the puck, we stay out too long, we make bad changes, we do things that beat ourselves. It's hard not to be upset."
The Kings took a 1-0 lead 5 minutes in. Denis Grebeshkov give the puck away at the Kings' blue line, allowed Brown and Richardson to go on a 2-on-1 break. Richardson tucked the puck between the legs of goalie Jeff Deslauriers.
Los Angeles went up by two goals 4 minutes into the second when Richardson went around defenseman Lubomir Visnovsky and fired a shot. Deslauriers made the initial save, but Brown made a diving play to whack in the big rebound.
"There is no excuse for that," Oilers defenseman Steve Staios said. "We cut corners tonight. We have to play to a higher standard. There were times when we did and times when we didn't. We can't afford to let our standards drop."
The Kings then turned over the puck in their own end with 8 minutes left in the second. Dustin Penner picked off a pass deep in the Los Angeles zone, but was stopped on the breakaway by Quick.
On the ensuing faceoff, Souray ripped a shot into the top corner to cut the Oilers' deficit to 2-1.
Edmonton tied it 4 minutes into the third when Tom Gilbert sent the puck up ice to Souray, who set up Potulny for his sixth goal of the season.
Los Angeles won the first game of the season series last month in Edmonton 3-1. ... Deslauriers made his 12th consecutive start for the Oilers because Nikolai Khabibulin is out with a back injury. Khabibulin had a procedure done on Tuesday, described by coach Pat Quinn as "spinal stuff." ... Grebeshkov returned after missing 13 games because of a knee injury. ... The Kings were without forwards Jarret Stoll, who left Monday's game in the third period because of a groin injury, and Wayne Simmonds, who had surgery earlier in the week to clean up cartilage damage in his left knee. ... The Kings recalled C Corey Elkins from the AHL on an emergency basis. It was Elkins' first NHL game.
Copyright by STATS LLC and The Associated Press
EDMONTON, CANADA - DECEMBER 15: Tom Gilbert #77 of the Edmonton Oilers warms up before a game against the Los...