A closing 66 saw Homa finish on 19 under, four clear of Nicolai Højgaard.
The American began the final round with a one-shot lead at Gary Player Country Club and was briefly caught by Thorbjørn Olesen despite making birdies on four of his first six holes.
However, no sooner had he been joined at the top of the leaderboard than World Number Eight Homa fired a sensational approach over the water to 18 feet at the ninth and converted the eagle opportunity.
The eagle added to gains at the second, third, fifth and sixth – as well as a bogey at the fourth – saw Homa match Olesen's front-nine 31 to lead by two on 18 under.
Olesen cranked up the pressure once more with a tap-in birdie on the tenth but, although Homa gave the chasing pack hope with a dropped shot on the 11th, the Dane carded consecutive bogeys at the 12th and 13th before a double-bogey at the 16th ended his challenge.
Homa birdied the 15th from seven feet and rattled in a 38-foot effort at the next to put the result beyond doubt.
“It's been a dream 10 or 11 days,” Homa said. “It was a crazy day – I got off to such a great start and Thorbjørn was playing unbelievable. He kept pushing us along and Nicolai was playing phenomenal golf so it was fun.
“Its kind of what you dream of, you want to be in the fight and it was fun to close it out at the end.”
On his huge birdie putt at the 16th, which looked to be racing well past the cup had the hole not intervened, Homa added: “It was an awkward putt. My speed was great for the first three days - I don't know if it was nerves or if my speed was just awful all day today. That one wasn't very good either but it hit the back of the cup thankfully.
“It's been tremendous to get to travel to a new place, meet so many amazing people, the fans have been amazing. Everyone has been so welcoming and kind. To come out with a trophy is just a cherry on top.”
Højgaard made four birdies in a flawless 68 to claim second, with Olesen making eight birdies in his 69 to take third on 14 under.
A closing 66 gave Justin Thomas fourth place on 12 under, one ahead of England's Dan Bradbury, who signed for a fourth-round 71.