The Spaniard began the final round with a three-shot lead over Henrik Stenson, and he ensured that the reigning Open champ couldn't get any closer by making a pair of front-nine birdies.
The win is Garcia's 12th on the European Tour, but his first since the 2014 Commercial Bank Qatar Masters.
Garcia, 37, had not played since a T-11 finish last month at the Singapore Open. After beginning the week ranked No. 15 in the world, he is expected to move into the top 10 when the new rankings are published.
Stenson made a move with birdies on Nos. 13 and 14, but a two-shot swing on the par-3 15th effectively ended the drama when Garcia birdied and Stenson bogeyed. This is Stenson's sixth straight worldwide top-10 finish dating back to the WGC-HSBC Champions in November.
England's Tyrrell Hatton and Denmark's Lasse Jansen tied for third at 14 under, five shots behind Garcia. For Hatton, it's a result that should push him into the top 20 in the world rankings.