Willett fired six birdies and an eagle in a second consecutive 65 at Emirates Golf Club to finish 16-under-par, one shot ahead of halfway leader Rafael Cabrera-Bello, who returned a third straight 67.
"I think mentally I feel like I'm very much in control of myself, which obviously helps," said world No.20 Willett, who holed from 40 feet for an eagle on the 13th, the same hole where his approach bounced out of a lake to set up an unlikely birdie on Thursday.
"I'm trying to keep it as simple as possible and let the mind be a little bit calmer, and it seems to be working so far.
"I played great golf today. Played really good on Friday and kept the foot down and could have been a couple better today in all fairness, but delighted. It would be nice to win every single event that we play over the span of your career, but this would be special."
Cabrera-Bello had enjoyed a two-shot lead when he holed a bunker shot on the third for eagle and birdied the fourth, but the Spaniard was fortunate to escape with a bogey on the seventh after a collar of rough prevented his tee shot from rolling into the water.
The 31-year-old bounced back with birdies on the ninth and 10th and recovered from another dropped shot on the 12th with two further birdies to boost his chances of a first victory since lifting the trophy in 2012.
"I need to play aggressive, keep playing as good as I am to give myself a chance," Cabrera-Bello said. "Lots of players are not far off the lead and all of them are going to have a chance tomorrow and they are definitely all as hungry as I am, if not more."
Sullivan drove out of bounds on his opening hole on Thursday but has played the next 53 in 16-under as he looks to build on a brilliant 2015, when he won three times on the European Tour and pushed McIlroy all the way in the season-ending World Tour Championship.
"I think I just found something with my driving," explained the 28-year-old, who used to work in a supermarket to fund his golf. "I was struggling with it in Abu Dhabi and struggled with it on Thursday, but just found a bit more rhythm on the ball and managed to keep it in the fairways.
"The times I have missed the fairways I seem to get a birdie in the right place and recover somehow. Things seem to be going my way at the moment."
McIlroy began the day six shots off the lead and looked to have blown his chances of a record-equalling third victory with a front nine of 37, including a double-bogey six on the ninth.
However, for the second day running the world No.2 -- who was outside the projected cut after 11 holes on Friday -- salvaged his round on the back nine, covering it in 31 with six birdies to card a 68 and finish at 8-under.
"I'm expecting the leaders to get to 14 or 15 under and being seven back is a tall order," McIlroy told Sky Sports after finishing his round. "I would have to play the front nine much better than I have the last two days; I've played it in five over and that's just not good enough.
"It's going to be a long shot. I came back from seven shots behind at Wentworth [to win the BMW PGA Championship] a couple of years ago so it's not out of the realms of possibility, but this is a great field."
Three-time winner Ernie Els was a shot off the lead at the start of the day, but ended it nine behind after struggling to a 74 which equalled his worst ever score in 55 rounds in this event.