The Sheffielder reached a career-high of ninth in the world after claiming his first major title at Augusta National in 2016, but has since plummeted to 462nd after struggling with injuries and a loss of form.
The 30-year-old had missed the cut in all but one of his nine starts in 2018, but added a 67 to his opening 65 and has yet to drop a shot this week.
“I haven’t made a cut for a while so to actually be this side of the leaderboard is pretty nice,” Willett said.
“I’ve been working really hard and I’ve not been getting any results and you just have to keep your head down and hope that you get a couple of days like this under your belt.”
The man Willett is chasing is Martin Kaymer, who surged into contention for his first victory in four years as several of Europe’s star names. Kaymer, whose last win brought him a second major title in the 2014 US Open, carded a second round of 63 at Gardagolf to finish 11 under par, a shot ahead of Graeme McDowell, Willett, Thomas Pieters, Rafa Cabrera-Bello and home favourite Francesco Molinari.
But after another day of low scoring, the entire field will be separated by just seven shots heading into the weekend, with the halfway cut falling at four under par.
“It’s been a while since I played that solid,” Kaymer said after a round that included five straight birdies from the 13th.
“I think I was getting very close recently, but that positivity was missing on the golf course because I haven’t had a lot of good results.
“It doesn’t matter if you’ve won majors and had the situations I had at the Ryder Cup, it’s really exciting to be in a position that you can win a golf tournament again.”
Willett’s 2016 Ryder Cup team-mate and fellow Sheffielder Matt Fitzpatrick is tied for 30th after rounds of 66 70. He was two over after 11 holes of his second round before claiming three birdies in five holes from the 13th.
Woodsome Hall’s Chris Hanson missed the cut by just one shot for the second week in succession.
He added a three-under-par 68 to his opening 71, amassing six birdies on the day.
But he was left to rue a double bogey six at the ninth.