McIlroy, who trailed Louis Oosthuizen by two shots going into Monday's final round, vaulted past the South African to finish at 20-under-par 264 -- good for a one-shot margin of victory.
It was the Northern Ireland native's third triumph of the season and the fifth of his career, boosting him to the top of the FedExCup standings with two PGA Tour playoff events remaining.
Oosthuizen fell to an even-par 71, ending up in sole possession of second at minus-19. The 2010 British Open winner came up short in his bid for a second career title.
Mickelson's performance was his best since tying for third at the Masters.