Rahm opened up a six-shot advantage after seven holes at Jumeirah Golf Estates before Fleetwood made a late charge, finishing with a final round 65 to set the clubhouse target at 18-under.
Needing a birdie at the final hole to beat Fleetwood's mark, Rahm produced a sublime bunker shot to within three feet before rolling home to secure the Harry Vardon Trophy.
Rahm became the second Spaniard after the late Seve Ballesteros to win the European Tour's season-long Race to Dubai crown or its predecessor, the Order of Merit.
"Seve was such an idol for us," Rahm said. "To put my name there, it's hard to believe. I can't believe some of the things I have accomplished."
Fleetwood's putter was hot on the back nine as he holed long putts on the 15th and 17th before a spectacular chip on the last moved him alongside Rahm, who scripted a remarkable finish of his own to lift his sixth European Tour title.
Rahm takes home $3 million for his win in Dubai as well as a $2 million bonus for topping the 2019 money list.
"It was such an up and down day," he added. "I had a six-shot lead and I came down 18 needing a birdie to win.
"But how many times do you dream of having to birdie the last to win a tournament?"
Mike Lorenzo-Vera, who started the day with a share of the overnight lead, slipped two behind when he took two chips to get out of rough on his way to bogeying the third.
The Frenchman recovered with two birdies on the back nine to sign for a 70 and seal a third-placed finish. Scotland's Robert MacIntyre won the 2019 rookie race with a solid round of 69 to finish tied-14th.
World No. 2 Rory McIlroy finished seven shots off the lead with a sluggish round of 73, one clear of last year's Dubai winner Danny Willett and two ahead of Sergio Garcia, Tom Lewis and Thomas Pieters.