The Oilers ended a three-game losing streak and won on the road for the first time in six tries.
Lubomir Visnovsky and Robert Nilsson tallied in the opening period and the Oilers had a 2-1 advantage going into the second. O'Sullivan produced goals on a pair of wrist shots less than 3 minutes apart in the second.
Jeff Deslauriers, who has given up an average of 3.02 goals per game this year, made 27 saves to get the win. He had lost four of his previous five starts. Jimmy Howard surrendered all four Edmonton goals on 36 shots.
Detroit had won two in a row. Edmonton came into the game tied with Anaheim for the fewest points in the Western Conference at 24.
Yosemite climber falls 30 feet, suffers major injuries
Moore to attend retreat in to avoid Kutcher's wedding