The South African had a birdie at No. 15 to take the lead and then held on to beat Edfors (66) and Rock (70), finishing the tournament at Leopard Creek at 17-under 271.
Len Mattiace of the United States, who was one stroke off the lead going into the final round, dropped to 14th after a double-bogey on the 15th and a triple-bogey on the last.
Thomas Aiken, who shot a course-record 61 on Saturday to take the lead, had a 75 and finished in a tie for fourth with Rafael Cabrera Bello (68). The South African bogeyed Nos. 9 and 10, and then had a double-bogey on the 12th.