The world number 50 shot a final-day two-under in Malelane to win by four shots from France's Gregory Bourdy.
Schwartzel, 31, led Frenchman Benjamin Herbert, who slipped to third, by three strokes heading into the fourth round where he carded a second successive 70.
England's Matt Ford was the highest Briton, tied in fifth.
Schwartzel, the 2011 Masters champion, was unhappy with his round on Saturday and had to recover from a bogey on the third on Sunday.
He bogeyed again on the eighth at Leopard Creek Country Club, but four birdies made sure he held off a resurgent Bourdy.
"It's an honour playing here," Schwartzel told the European Tour website.
"I knew I was going to have to shoot at least two or three under on the back nine to give myself a good chance of winning and I'm very happy with that."
It meant Schwartzel became the third South African to win 10 European Tour events, alongside Ernie Els and Retief Goosen, and the youngest to do so ahead of Els.
The competition marked the start of the 2016 European Tour.

The Ivory Coast international, 27, said he wanted to leave in August and was a target for Everton.
However, a move did not materialise for Kone, signed from French Ligue 1 club Lorient in January.
"Lamine is an important player for this club and I made that clear to him from the outset," said Sunderland manager David Moyes.
Kone was signed by Moyes' predecessor Sam Allardyce and played a key role in their survival in the top flight last season.
Moyes added: "He only been playing in the Premier League since January, but in that time we have already seen what he is capable of.
"The challenge for Lamine now is to build on what has been a very positive introduction to English football and to continue to improve and grow as a player."
Charl Schwartzel secured a fourth Alfred Dunhill Championship title in 11 years when he finished 15 under par in his native South Africa on Sunday.
[NEXT_CONCEPT]
Sunderland defender Lamine Kone has signed a new five-year contract with the Premier League club.