Earlier Spain's Sergio Garcia equalled the course record of 64 for the second time in the week - he eagled the par five 18th again to do it - while Scot Stephen Gallacher and Dutchman Joost Luiten had holes-in-one at the fourth and sixth respectively.
It was suddenly all change at the top when Rose, six behind at the start of the day, followed his sixth birdie on the short 13th with an approach to the 626 yard 14th that curled round to within five feet of the hole.
In it went for eagle and he was 19 under, one ahead of McIlroy and two in front of Donald, who both missed birdie chances on the tenth.
McIlroy was back on terms after hitting in close on the 401 yard 11th, but Rose nosed ahead again with an eight footer on the 15th.
He needed only three closing pars for a new course record of 63, but that was probably not going to bring him the title and so he was looking to pick up more shots.
Donald missed the green on the 12th and by bogeying fell four behind and into a tie for third with Oosthuizen.
Rose parred the 16th and 17th and his lead went to two when McIlroy three-putted the 13th.
By chipping close for birdie on the next, however, the gap was back to one as Rose came to the par five last requiring a par for a course record 63.
Donald and Oosthuizen were three back after birdies on the 14th.
Rose sent his second shot to the back of the green around 100 feet from the flag and his eagle attempt looked as if it might die on a ridge, but then trickled down to the side of the hole.
He gave a fist pump before tapping in for birdie and a 62, a course record by two and his lowest-ever European Tour round by two.
McIlroy, though, pitched to three feet on the 15th and by holing was only one behind again.
McIlroy wasted no time drawing level, making it three birdies in a row with a 20 footer on the 16th. Donald and Oosthuizen also made three there, but were three behind.