Garcia improved his 1-shot overnight lead over Louis Oosthuizen, although the gap would have been bigger if not for a two-shot swing Oosthuizen's way on the final hole of the third round at Gary Player Country Club on Saturday.
Garcia bogeyed No. 18 for the second straight round after sending his approach into the grandstand. He signed for a 1-under 71 and 10 under overall. Oosthuizen made birdie on the last to finish with a 72 and two off Garcia when he was four behind on the last tee.
Thomas Detry, Mikko Korhonen and two-time Nedbank winner Lee Westwood are tied for third, three shots off the lead on 7 under. Ross Fisher is a further shot back.
Garcia birdied his second and third holes but found it tough at the back end of his round again, with his wayward approach to the last green flying high into the rows of spectators up on the stands.
Oosthuizen took advantage with just his second birdie of the day, although he benefited from a fortunate kick off the right fringe of the green to set up his birdie putt.
Garcia is seeking a second straight win after triumphing at home at the Andalucia Valderrama Masters last month, and a victory by the Spaniard would be the second wire-to-wire success of the season after Eddie Pepperell at the British Masters. Garcia has won twice at Sun City, but the last of those two titles was in 2003.
"I think if I can manage to shoot somewhere in the 60s, maybe 70 might be enough," said Garcia, who opened the tournament with an 8-under 64 before carding 71 and then 71 again on Saturday. "I'm going to see if I can shoot below 70 and see if that's good enough."
Detry is in contention after the young Belgian produced another birdie-filled back nine as he picked up shots on four of his last six holes for his 68. Detry made six birdies on the back nine on Friday.
Westwood shot 69 for the second successive round on a course he enjoys and where he won back-to-back titles in 2010-11.
Rory McIlroy is one of three players along with Li Haotong and Lucas Bjerregaard competing at Sun City who still have a chance of winning the Race to Dubai and ending the season as European No. 1, although their hopes appear to be slipping away.
McIlroy, who needs a top-two finish in Sun City to stay in contention, was 10 shots behind. Li and Bjerregaard both need to win to have a chance at the season crown, but Li was 10 behind and Bjerregaard 14 shots off the pace.
That makes it likely that next week's season-ending DP World Tour Championship in Dubai will be a shootout between Race to Dubai leader Francesco Molinari and his Ryder Cup teammate Tommy Fleetwood for Europe's top golfer of 2018.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies