The former Masters champion shot a third-round 67 for a 13-under-par total of 203 and the lead over second-placed Englishman Richard Fuinch.
Schwartzel hit a flawless round with five birdies as his overnight co-leader, Morten Orum Madsen, slumped to a 79 and fell 12 shots back.
Dane Madsen won the South African Open last week in the first event of the new European Tour season.
Schwartzel birdied the par-five second and then made a potentially decisive move around the turn.
A superb approach to the eighth left the South African with a tap-in birdie and another followed from six feet on the ninth, taking him out in 32. Further birdies on the 12th and 13th took him to 13 under par.
"It's one of those courses where I'm comfortable with all of the right lines," said Schwartzel, who has not dropped a shot since a double bogey at the 10th hole of his opening round.
"A lot of golf courses you need to hit it on lines that you feel awkward with, but this course is mostly right in front of you. And I think it helps that I've had good success here too," he told reporters after his round at the picturesque course adjoining the Kruger Park.
Last year Schwartzel won the trophy by 12 shots but he can expect a tough tussle in Sunday's final round.
Finch, who dropped four shots on the last three holes on Friday, came back strongly on Saturday as his round of 67 put him 11 under par.
He lost his European Tour card earlier this year and is playing in the event by invitation.
Two Frenchmen lie third and fourth - Victor Riu on 10-under and Romain Wattela a further stroke behind.
- Sports & Recreation
- Morten Orum Madsen