McIlroy ended with a 7-under-par 65, which has him two strokes up on Gonzalo Fernandez-Castano and Jamie Donaldson. A group of Tommy Fleetwood, Justin Rose, Jordan Spieth and Bubba Watson is tied for fourth at 4-under and seven more players are at 3-under.
Phil Mickelson was tied for the lead after 16 holes but put two balls in the water at the par-5 eighth -- his 17th Thursday -- for a double-bogey 9 and bogeyed No. 9 to drop to 1-under and a tie for 28th.
McIlroy, starting on the 10th hole Thursday, opened with a birdie but then had a 5 at the par-4 11th. He came right back with another birdie and added birdies at each even-number hole to make the turn at 4-under.
He opened his second nine with back-to-back birdies and added to his lead with one more at No. 8 with a 7-foot putt.
Fernandez-Gonzalo, coming off a European Tour win at the BMW Masters also in Shanghai, had two birdies and a bogey in the first nine holes but raced up the leaderboard with four consecutive birdies at Nos. 5-8.
Donaldson's round included a back nine that showed an eagle 2 at the 16th, four birdies and two bogeys.
The tournament is on both the PGA Tour and the European Tour calendars.