Grace, 23, shot a final round 72 and finished the tournament at 17-under 270. He ended up one-stroke ahead of Jamie Elson, who was 10 off the pace going into the final round. But even a final-hole eagle by Elson couldn't catch Grace.
Rain pushed back play the first three days of the tournament and Grace had to finish three holes of his third round before beginning play in the fourth Sunday.
He was at 17-under after 54 holes, which left him three ahead of the field going into the final round. That allowed him to play cautiously, using a round of 16 pars, a bogey at the second hole and birdie at the ninth to pick up the victory.
Elson's 9-under 63 in the final round tied the Royal Johannesburg and Kensington Golf Club East Course record. He opened with a birdie and pulled into contention with five consecutive birdies over Nos. 4-8.
He added a birdie at the 16th hole and dropped a 30-foot eagle putt at the 18th.