Kenny Perry, a leader after both the first and second rounds, struggled to a 1-over-par 73 on Saturday and is alone in third place at 10-under-par 206.
Garcia got nothing going on the front nine at the Gary Player Country Club Course. He made a bogey at the par-4 third hole for the second consecutive day but caught fire on the second nine.
The Spaniard collected birdies on both par-5s on the back side, Nos. 10 and 14, then rolled home a hard-breaking birdie putt at the last to slide past Goosen into first.
'It was a tough day and I had to be accurate off the tees and approaching the greens,' Garcia said. 'I am going to have to keep doing the same thing.'
Goosen was 2 under on his front side but made his move up the leaderboard with his play on the back nine. He bogeyed No. 12 but collected three birdies in his final five holes for his round of 4-under 68.
Perry was 2-under after 11 holes on Saturday but long approaches at 12, 13 and 15 gave him three quick bogies. He mixed a birdie and bogey over his final two holes to stay within two of Garcia's lead.
'I was struggling all day to make good shots, and I just didn't get the putts,' said Perry.
Vijay Singh fashioned a round of 1-under-par 71 and is in fourth at minus-8.
Jerry Kelly carded a 4-over 76 and is tied for fifth with Stephen Leaney, who shot a 2-under 70 in the third round. The duo is knotted at 6-under-par 210.
Chris DiMarco and Darren Clarke each posted rounds of 2-over 74 and share seventh at minus-5.
Ernie Els, the defending champion and three-time winner, shot a 2-over 74 on Saturday and is in last place in the 18-man field at 5-over-par 221.