South Africa 21 New Zealand 20: An Andre Pretorius penalty with two minutes remaining earned South Africa their first win in this year's Tri-Nations tournament and ended New Zealand's run of 15 consecutive victories under coach Graham Henry.
Pretorius slotted over following an infringement by Rodney So'oialo in a ruck, just when it seemed Joe Rokocoko's try with 14 minutes left had earned the All Blacks the spoils in Rustenburg.
The sides went into half-time level at 13-13 - Bryan Habana going over for the Springboks and Daniel Carter touching down for the visitors - but Pedrie Wannenburg scored midway through the second half to put the hosts back into the lead.
South Africa: 15-Jaque Fourie; 14-Akona Ndungane, 13-Wynand Olivier, 12-Jean De Villiers, 11-Bryan Habana, 10-Andre Pretorius; 9-Fourie Du Preez, 8-AJ Venter; 7-Pierre Spies, 6-Pedrie Wannenburg, 5-Victor Matfield, 4-Johann Muller, 3-BJ Botha, 2-John Smit (capt), 1-Os du Randt. Replacements: 16-Chiliboy Ralepelle, 17-Lawrence Sephaka, 18-Albert Van Den Berg, 19-Jacques Cronje, 20-Ruan Pienaar, 21-Butch James, 22-Breyton Paulse
New Zealand: 15-Doug Howlett; 14-Joe Rokocoko, 13-Mils Muliaina, 12-Aaron Mauger, 11-Sivivatu Sitiveni, 10-Daniel Carter; 9-Jimmy Cowan, 8-Rodney So'oialo; 7-Richie McCaw (capt), 6-Jerry Collins, 5-Ali Williams, 4-Chris Jack, 3-Carl Hayman, 2-Andrew Hore, 1-Tony Woodcock Replacements:16-Anton Oliver, 17-Neemia Tialata, 18-Jason Eaton, 19-Marty Holah, 20-Byron Kelleher, 21-Luke McAlister, 22-Rico Gear