Schwartzel hit a 7-iron into the cup at the 205-yard 12th on the Royal Johannesburg and Kensington Golf Clubs East Course, atoning for his double-bogey 6 at No. 11.
My last hole-in-one was in July 1998 when I was 13 years old, Schwartzel said. I pitched it short and landed in the hole, so that was really nice.
Schwartzels 11-under 202 total tied him with South Africas Andrew McLardy and Scotlands David Drysdale, the overnight leader.
McLardy scrapped his way to a 69, while Drysdale birdied the 18th for a 71.
Retief Goosen had six birdies for a 65 to join Swedens Joakim Haeggman (66) and Norways Anders Hansen (64) one shot back in a tie for fourth after a round that included two weather delays.
I was a bit far behind, especially after the first round when I had a terrible start, Hansen said. But I got myself back into the tournament so well see whats going to happen.