McIlroy's fellow Northern Irishman Gareth Maybin was joint second overnight with Italian teenager Matteo Manassero, but bogeyed the long second.
Olesen did nothing wrong over the opening stretch, but was caught when South African James Kingston - only joint 16th at halfway on three under - had his fifth birdie of the day on the eighth.
McIlroy made a second ten footer on the fourth to tuck in just one behind again and this, of course, after he suffered a two stroke penalty midway through his second round for brushing sand away when not on the green.
Woods followed his initial birdie with four pars in a row and that was enough to drop him back into a tie for eighth.
Kingston, out in 31, led on his own when Olesen bogeyed the fifth, but then was joined by Scot Paul Lawrie, who had three birdies in his first six.
McIlroy three-putted the sixth, but was inches from a hole-in-one on the next and, with Woods also making two from five feet, they were both only one behind.