In his first start since claiming his third major title at Royal Liverpool, McIlroy erased a three-shot overnight deficit, firing a final round of four-under par 66 for a 15-under total of 265 and a two-shot win over Garcia.
Garcia closed with a one-over par 71 at Firestone Country Club for a 13-under par total of 267.
“What I’m really proud of this week is just following up the Open with a performance like this,” McIlroy said. “I said straight after I didn’t want any let down. I wanted to keep going and play well the rest of the season.”
Before the drama of the final group played out, defending champion Tiger Woods was the focus of attention as he withdrew after eight holes with back pain that puts his appearance in next week’s PGA Championship in doubt.
The 14-time major champion, who had back surgery in March, said he began suffering from back spasms after landing hard in a bunker after a shot at the second hole, the pain finally bringing his third start since his surgery to an abrupt end.
With his first WGC title in hand, McIlroy will go into the final major of the year at Valhalla in Kentucky as a firm favorite.
He pulled his opening drive into the rough, and fired a shot through the trees that left him a three-footer for birdie.
Garcia, meanwhile, two-putted from 78 feet for par.
McIlroy two-putted from 27 feet for birdie at the par-five second, where Garcia missed a six-foot birdie chance.
McIlroy took a one-stroke lead with a birdie at the third coupled with Garcia’s bogey.
The Spaniard’s tee shot into the gallery at the third knocked the diamond out of a woman spectator’s ring. He hit his second shot over the green and finally missed a six-foot par-saving attempt to climb to one-over for the day and 13-under for the tournament, as McIlroy moved atop the leaderboard at 14-under.
McIlroy said his early surge was a follow-on from his birdie-birdie finish on Saturday.
McIlroy stretched his lead with a seven-foot birdie putt at the par-three fifth, but he gave a shot back with a bogey from a bunker at the eighth.
Garcia drained a 15-foot birdie putt at the ninth, where McIlroy’s six-foot birdie attempt curled around the cup but failed to drop and they headed into the back nine tied for the lead.
But Garcia, who birdied eight holes on the back nine in his 61 on Friday, wouldn’t find another birdie.
McIlroy took the lead for good with a birdie at 11, and Garcia fell a further stroke back with a bogey at 15.
The Spaniard missed birdie putts of 20, eight and 21 feet on the final three holes.
“I didn’t feel comfortable on the greens at all,” Garcia said. “With the speed of the greens changing quite dramatically after the rain, they were quite slow. I just couldn’t get it.”
Australian Marc Leishman finished alone in third after a 67 for 268.
Major winners Justin Rose of England, Charl Schwartzel of South Africa and Keegan Bradley of the United States were in a group sharing fourth on 271 that also included American Patrick Reed.