Edmonton, 4-0-3 in its last seven games, strengthened its hold on seventh place in the Western Conference and closed within a point of sixth-place Columbus.
The Oilers arrived at their hotel in Chicago at 3 a.m. following an 8-1 win at Colorado on Thursday night. Still, they managed to skate to a 4-4 tie through overtime with the Blackhawks in the uptempo game.
Then O'Sullivan and Kotalik converted Edmonton's first two shootout attempts against Nikolai Khabibulin to win it.
"It was tough," O'Sullivan said. "Every team has to go through it, but points are critical right now. Seventy games in, you're going to be a little bit tired."
"We got their best and we responded really well, especially in a back-to-back game," Moreau said. "This is pretty good tempo, what we have to deal with the rest of the year."
Dwayne Roloson made 39 saves, including one on Jonathan Toews' penalty shot with 7:07 left in regulation and the game tied at 4. In the shootout, Toews lost control of the puck on Chicago's first attempt, then Roloson stopped Patrick Kane.
Roloson extended a team record by making his 27th straight start.
"He's an absolute warrior," Oilers coach Craig MacTavish said. "Great save on the penalty shot. It was one of the keys in a game where it seemed there were many keys."
Havlat's goal at 7:23 of the third period tied it at 4 and set up overtime.
The Blackhawks' winless streak is their longest this season. They're 3-7-3 in their last 13. With a point, Chicago moved into a fourth-place tie with Vancouver in the Western Conference.
"We're having a hard time keeping the puck out of our net and getting momentum in games," Blackhawks coach Joel Quenneville said. "We've gotten the effort the last few games. It's a matter of confidence. A win is what we're looking for."
Khabibulin stopped 27 shots. He hasn't won since Feb. 11 in Atlanta, when he sustained a groin injury that sidelined him for a month.
Chicago had won its three previous games against Edmonton this season, outscoring the Oilers 15-3.
Penner opened the scoring with a power-play goal 3:12 in. From the left edge of the crease, he tipped in Denis Grebeshkov's crisp feed from the point.
Bolland tied it at 1 at 7:41, tipping in Brent Seabrook's low drive from right point.
Burish tied it at 2 with 1:28 left in the first by converting a rebound of Brian Campbell's shot from the right point.
Moreau was credited with a goal at 6:03 of the second that withstood a video review and gave Edmonton a 3-2 lead. Khabibulin stopped Moreau's low shot, but the puck continued into the net as Penner crashed into the crease.
Roloson made several close-in saves to preserve the lead, including a diving stop on Campbell's rebound attempt at 7:27.
Barker eventually tied it at 3 during a 4-on-4 with 2:29 left in the period. After Roloson stopped Havlat's point-blank attempt, Barker pinched in and converted the rebound.
Gagner scored on a breakaway exactly as a Chicago penalty expired 48 seconds later. Gagne skated in alone after waiting at the Chicago blue line and taking a long pass from Robert Nilsson.
Havlat tied it at 4 at 7:23 of the third by lofting in a rebound of Seabrook's shot.
Toews was awarded his penalty shot with 7:07 left after being hooked from behind on a breakaway by Sheldon Souray. Roloson made a right pad save on Toews.
Edmonton failed to score on a power play that began with 21 seconds left in regulation and spilled into overtime.
- Reddox had to be helped from the ice at 7:36 of the third after being hit by Chicago's Ben Eager.
- Opponents have opened the scoring in seven of Chicago's last eight games.
- Chicago RW Patrick Sharp missed his 16th game because of a left knee injury, but has resumed practicing. He has 23 goals in 54 games.