The Swede shot a 64 to reach 14-under par while world number one McIlroy made seven birdies for a 65 that lifted him to 12 under.
Overnight leader Jamie Donaldson followed up his course record 62 with a 74 to fall six shots off the pace.
Hanson opened with a bogey but made five birdies on the front nine and three more in a row from the 11th.
McIlroy, who won the Shanghai Masters on the same Lake Malaren course last year, picked up shots at the second, third, eighth and ninth. He then had a trio of birdies from the 13th as he chases his fifth victory of the season.
Hanson said: "It's going to be fun. He's going to be tough to beat and I'll play 30 to 40 yards behind him, but hopefully I can give him a game.
"It's always nice to follow up a good 66 with an even better round. The greens are beautiful and the course is still pretty soft."