Edmonton blew the four-goal lead it had built at the midway point of the second period but eventually managed to halt a three-game losing streak.
After two scoreless rounds, O'Sullivan put one past Howard. Henrik Zetterberg, who had started the Detroit comeback late in the second period, then missed his shootout attempt to leave the Oilers with the win.
Ales Hemsky scored twice for Edmonton while the Oilers were jumping to a 4-0 lead.
Detroit continued to struggle with its goaltending. Howard was filling in for Chris Osgood, who has allowed an average of 3.4 goals this season in his eight starts.
Osgood gave up two goals on four shots before being removed seven minutes into Detroit's previous outing against Vancouver.