The 29-year-old started Sunday's final round at the Gary Player CC trailing overnight leader Scott Jamieson by three shots, but an impressive bogey-free 66, which included six birdies, was enough to edge him over the line on 11 under for a first tournament win of 2017.
"It's dream come true to win at Sun City and to win Africa's major," said Grace. "It's a very special week, we found out on Wednesday we're having a boy.
"I had to stay patient and I had to take the chances when they came my way. I missed a couple of short ones but I think the big key was the putt on 16."
Jamieson could only manage a final-round 70 to leave the Scot in second, while Frenchman Victor Dubuisson also had a spell at the top of the leaderboard on Sunday before settling for a 70, which left him another shot adrift in third position.
China's Li Haotong, who hit a second-round 77, came from nowhere to take fourth place, one shot ahead of German Martin Kaymer, after he fired an impressive round-of-the-day 64.
Tommy Fleetwood finished tied for 10th position but that was still enough for him to extend his lead at the top of the Race to Dubai standings going into next week's season-ending DP World Tour Championship in Dubai.