Garcia closed with a 5-under 67 and won for the 10th consecutive year worldwide, and the first time on the PGA Tour since the 2017 Masters.
Peter Malnati, whose lose PGA Tour victory came at this tournament five years ago, closed with a career-best 63 and waited nearly two hours to see if it would hold up.
It almost did.
Garcia was two shots behind when he hit 5-wood on the par-5 14th that narrowly cleared a bunker, hitting in the top collar, onto the fringe and rolling out to just inside 4 feet for eagle to tie for the lead.
He had to save par from a bunker with a 5-foot putt on the 15th after a poor tee shot, and then he delivered the winner with a big tee shot on the 18th and an 8-iron from 171 yards. Garcia immediately began walking after the shot, and it dropped down next to the hole and settled right behind it.
Closing his eyes right before the stroke, a habit he returned to this week, he made it and clenched his fist with a grin not seen on the 40-year-old Spaniard lately.
One week after falling out of the top 50 in the world for the first time since 2011, Garcia won for the 11th time on the PGA Tour and the 31st time worldwide. He finished at 19-under 269.
J.T. Poston, who started the final round in at three-way tie with Garcia and Cameron Davis of Australia, was one shot behind when he missed the 16th fairway to the right, went into a bunker and failed to save par. He finished with two pars for a 70 to finish alone in third.
Davis had three bogeys on the front nine and was never a factor, closing with a 72.
Corey Conners of Listowel, Ont., carded a final round, 2-under 70 to finish as top Canadian in a tie for 17th place. Fellow countrymen Roger Sloan (Merritt, B.C.) finished T32 and Michael Gligic (Burlington, Ont.) at T37.