Tuomo Ruutu and Denis Arkhipov added goals for Chicago, which remained unbeaten in regulation in seven games (4-0-3) under coach Denis Savard. The Blackhawks, however, hadn't won in their last three games, falling twice in shootouts and once in overtime.
Havlat has three goals and two assists in two games after missing 19 contests with a sprained ankle.
Jarret Stoll converted a second-period penalty shot for the Oilers, who had a three-game winning streak snapped.
Chicago's Nikolai Khabibulin stopped 18 shots, while Edmonton's Dwayne Roloson blocked 23.
Edmonton's league-leading penalty killing kept the game close. The Oilers held off all 10 Chicago power plays - including three 5-on-3 advantages - and stretched their consecutive penalty kills to 23 over four games.
Ruutu opened the scoring 8:26 into the game from just in front of the crease. Lasse Kukkonen's shot from the right point hit Ruutu in the stomach, then dropped to the ice. Ruutu turned and fired the loose puck past Roloson.
Smolinksi made it 2-0 with 6:49 left in the opening period. With Roloson down, he fired into a wide-open net after taking a short feed across the slot from Havlat.
Stoll's penalty-shot goal came at 4:34 of the second period. He fired a wrist shot between Khabibulin's pads. Stoll was awarded the attempt after being pulled down by Jassen Cullimore.
Stoll hit the post twice during an Edmonton power play midway through the second. Khabibulin made a point-blank glove save on Toby Petersen with just over six minutes left in the period.
Havlat scored on a breakaway at 4:23 of the third to make it 3-1. After skating down the slot, he threaded a backhander between Roloson's left shoulder and the crossbar.
Arkhipov scored into an empty net with 4.1 seconds left.
Notes: The Blackhawks signed F Peter Bondra, 38, to a one-year contract on Sunday. Bondra, who was not playing this season, has 498 goals and 380 assists on 1,044 NHL games. He is expected to join the Blackhawks Thursday when they host Detroit. Bondra played with Atlanta last season. ... Chicago RW Radim Vrbata is day-to-day with an injured left wrist. D Adrian Aucoin missed his eighth game with a pulled groin. ... Edmonton RW Ales Hemsky sat out his sixth game with a right shoulder injury and is day-to-day. C Ryan Smyth missed his fourth game with a fractured right thumb.