Charl Schwartzel remained on course for a first South African Open Championship hosted by the City of Ekurhuleni, but saw his lead trimmed during the final round at Glendower Golf Club.
The former Masters Tournament winner, who despite claiming six of his nine European Tour titles on home soil has yet to win his national Open, started the day five shots clear of Matthew Fitzpatrick and David Drysdale on 13 under par.
Schwartzel had to produce some good scrambles to par the first four holes, but a fine approach to the fifth yielded a first birdie of the day.
However, he handed that shot back with a bogey at the seventh following a poor approach to turn in a level par 36.
That allowed first round leader Andy Sullivan to move within three, the Englishman chipping in for an eagle two at the 12th.
Another Englishman, Lee Slattery, was third on nine under after turning in 34, with Fitzpatrick remaining eight under after a double bogey at the seventh scuppered a promising start.
Schwartzel briefly increased his lead to four shots with a birdie on the short par four 12th, where he unsurprisingly turned down the chance to drive the green.
But Sullivan had not given up the chase and promptly holed from five feet for birdie on the 16th to close within three once more.
Sullivan left a long birdie putt on the 18th just short and had to settle for a closing 67 to set the clubhouse target at 11 under par.
And Schwartzel took a major step towards securing the trophy with a birdie on the par five 13th to stretch his lead to four shots with five holes to play.