Former Masters champion Schwartzel, who won this title by 12 shots last year, carded a closing 68 to finish 17 under par, four clear of England's Richard Finch.
Simon Dyson, who faces a European Tour disciplinary panel on Thursday following his disqualification from the BMW Masters in October, shot a final round of 67 to finish joint third on 10 under, alongside compatriot Ross Fisher and France's Romain Wattel.
The win will take Schwartzel back into the world's top 20 and makes up for letting a three-shot lead slip in the final round of the South African Open seven days ago.
The 29-year-old played his last 62 holes without dropping a shot, and said: "I had that hiccup on the first round through 17 (a bogey) and the first hole (a double bogey) and then after that was pretty much flawless.
"No bogeys from there on in and most of the time if you're going to play 60-odd holes without bogeys hopefully you'll win. It's always nice to get a win and get some confidence up and see the game is in good shape."
Schwartzel began the final round with a two-shot lead over playing partner Finch, but saw that wiped out in the space of three holes as the Englishman birdied the first and third.
"He got off to a fantastic start and mine was a little shaky but I know from experience on this golf course it's a long way from over," Schwartzel added. "You have to try to keep hitting good shots which I was and I've been putting well all week.
"If I keep hitting good shots I'm bound to make three or four putts and if I shoot 68 or 67 he would have had to play really well to beat me."
Schwartzel regained the lead after a superb tee shot to within a few feet of the hole on the fifth, but a birdie on the sixth was matched by Finch, playing here on a sponsor's invite after losing his card at the end of the 2013 season.
It looked as though Finch, who won twice on the European Tour in 2008, would get back on level terms after a brilliant second shot to the eighth, but Schwartzel holed from 20ft and Finch did well to follow him in.
Finch made his first mistake of the day on the 11th, a wild drive leading to a penalty drop and a bogey five, although Schwartzel almost let him off the hook.
From the middle of the fairway Schwartzel span a simple wedge shot back into a greenside bunker and eventually had to hole from four feet for par to extend his lead to two shots.
Schwartzel moved three ahead with a birdie from 10 feet on the 13th and the tournament, staged in north-eastern South Africa, was suddenly over as a contest when Finch ran up a double bogey on the next. His approach from a fairway bunker hit rocks on the edge of a water hazard and bounced into some bushes.
Schwartzel's birdie putt from six feet lipped out, but he still had a five-shot lead with four holes to play. Finch reduced the gap with a birdie on the 15th, but Schwartzel was able to cruise home with a safety-first approach to seal his ninth European Tour title.