Gonzalez finished at 10-under-par 282 after a closing 69, winning for the first time in five years and fourth time overall on the European Tour.
Jamie Donaldson (68) was second at 284 and Jeppe Huldahl (74) took third at 286.
Marcus Fraser (77), the third-round leader, shared fourth place at 288 with six other players.
Gonzalez, 39, moved to the top of the leaderboard with birdies at 13, 14 and 16, then holed a bunker shot for another birdie at 17 and knocked in a 6-foot putt for another on the final hole.
"I feel incredible. I've been waiting five years for this victory," Gonzalez said. "It's been a very long wait."
Swim Week Miami Beach 2014 [PHOTOS]