The world number two conjured up six birdies over the closing holes to finish on eight under par, eight strokes behind Willett and seven adrift of Spain's Rafael Cabrera-Bello.
Briton Andy Sullivan was a shot back in third, one ahead of Dutchman Joost Luiten.
Willett, runner-up to McIlroy in last season's Race to Dubai, fired a second successive 65 at Emirates Golf Club to move to 16 under par, sinking a superb 30-foot eagle putt at the 13th.
"I kept the ball under fantastic control with some crosswinds, did everything right really. A couple of hiccups in there today where it could have been a little different and kept the head on and kept moving forward," the 28-year-old told the European Tour website.
"I think mentally I feel like I'm very much in control of myself, which obviously helps."
A double-bogey on the ninth looked to have ended McIlroy's victory hopes but the Northern Irishman birdied three of his last four holes for a 68 that give him an outside chance of winning the tournament for the third time.
South African Ernie Els, like McIlroy a four-times major champion, struggled in a round of 74 and finished on seven under par.
(Reporting by Ed Osmond, editing by Clare Fallon)
Share
