Playing alongside the world No. 1, McIlroy shot 1-under 70 to grab a one-stroke lead, at 11 under, entering weekend play in the desert. Woods carded a 1-over 73 to fall eight off the pace.
McIlroy started the day with a one-stroke advantage, but dropped into a share of the lead with a bogey at the par-4 first. He recovered with birdies on Nos. 3, 5, 7 and 10, and looked to be taking control of the event before stalling on the back nine. He bogeyed the par-5 13th and the par-4 16th. Tied at 10 under with Koepka, McIlroy birdied the par-5 finishing hole to regain sole possession of the top spot.
Woods, meanwhile, struggled from tee to green throughout the round. He only made two birdies and countered those with three bogeys. Woods needed 24 putts in an opening-round 69, but had 30 in Round 2. He hit four of 14 fairways and 11 of 18 greens in regulation.
At 3 under par, Woods made the cut by two strokes.
Koepka, a former Florida State University player, made a name for himself last year by winning three times on the Challenge Tour to earn his European Tour card. He ultimately finished 113th in the Race to Dubai to just miss gaining full-exempt status in 2014. The 23-year-old American also finished T-3 at the PGA Tour's Frys.com Open.
Friday on the Majlis Course at the Emirates Golf Club, Koepka started both nines with a string of birdies. He totaled seven birdies to no bogeys to earn a spot in Saturday's final pairing.