McIlroy has missed the cut in his last two events in America, including the Masters Tournament at Augusta National following rounds of 74 and 77.
But the 20 year old, who turns 21 on Tuesday, looked back to his best in North Carolina with a round containing nine birdies and three bogeys which lifted him from joint 48th overnight to a share of seventh on five under.
"It was a great round of golf, I played really really well," McIlroy said. "I feel as if I've been hitting it well the last couple of weeks and not getting much out of it but today I knocked a few putts in and gave myself plenty of chances.
"It's a bit disappointing to bogey the last but 66 is a great score out there and puts me in a nice position going into tomorrow.
"Ten or 11 under will lead at the end of the day so if I'm within five I've got a good chance, but I'm just happy to be where I'm at because the last couple of months have been a struggle.
"It's just nice to shoot a good round and get myself into some sort of contention going into Sunday."
Asked to explain what has turned his game around, McIlroy added: "I've had to put a lot of work in.
"I had a little bit of a back injury. It's still there but getting a lot better and I feel I can swing with a lot more freedom now and actually practice more and spend a bit more time on the range which has definitely helped.
"I put my old trusty putter back in the bag last night which helped, my pace was pretty good out there today.
"Hopefully I can do the same tomorrow."
McIlroy is just four shots behind leader Billy Mayfair, with Phil Mickelson and Davis Love III tied second on seven under.
Argentina's two-time Major winner Angel Cabrera is one of three players on six under.