McIlroy, who held a share of the first-round lead at Cherry Hills, saw himself slipping down the leaderboard in the second round until he rallied with birdies on three of the final four holes.
Another 3-under-par 67 moved McIlroy two shots off the lead.
“I feel much better coming off the golf course,” McIlroy said. “I sort of struggled to get anything going today.”
At the end of a cold, blustery day, McIlroy’s putter got hot. He rolled in a 28-foot birdie at the 15th, a 34-foot birdie at the 16th and two-putted for birdie from 40 feet at the 17th.
“It was tricky conditions out there,” McIlroy said. “Birdies were hard to come by, but I think my patience was rewarded with how I played the last few holes, and I'm in a good position going into the weekend.”
FedEx Cup leader Chris Kirk is opening a door for McIlroy, who is No. 2 in points. Kirk shot 70 Friday and is tied for 29th, nine shots off the lead.