Sharp reached the 20-goal mark for the first time in his career with the score, which was set up after Blackhawks forward Martin Havlat forced Edmonton's Ales Hemsky to turn over the puck in the Chicago zone.
Tuomo Ruutu also scored for the Blackhawks, who won for the second time in three days following a six-game losing streak.
Raffi Torres scored for nose-diving Edmonton, which dropped its fourth straight and has just one victory in its last 17 games (1-15-1).
Ruutu snapped a seven-game streak without a point.
Chicago's Nikolai Khabibulin stopped 19 shots, while Dwayne Roloson made 18 saves at the other end.
The Blackhawks and Oilers have been eliminated from playoff contention. Chicago will miss the post-season for the eighth time in nine seasons.
Torres opened the scoring at 7:12 of the first. After going to the net and slipping by Chicago defenceman Adrian Aucoin, Torres tipped in Marc Pouliot's pinpoint pass from the right corner.
Ruutu tied it at 6:16 of the second. Although Ruutu appeared to be covered at the edge of the crease, he muscled in Radim Vrbata's centring pass from behind the net.
The Oilers failed to score during a 5-on-3 power play late in the third. They managed three shots on goal during the 1:43 advantage.
Sharp's short-handed goal at 2:57 of the third period capped a 2-on-none break with Havlat and gave Chicago a 2-1 lead.
After Havlat poked the puck away from Hemsky high in the Blackhawks' zone, he fed it to Sharp. Both Sharp and Havlat skated in alone, and Sharp beat Roloson with a shot high on the glove side.
Notes: Edmonton D Steve Staios missed his 12th game with a left knee injury and D Jan Hejda missed his 12th with a left shoulder injury. Oilers D Mathieu Roy missed his first with a concussion. LW Jean-Francois Jacques was a healthy scratch. ... Blackhawks LW Peter Bondra missed his third straight game and seventh in his last eight with a sore shoulder. ... Chicago concluded a six-game homestand.