South Africa fought back to beat New Zealand and close in on the Rugby Championship title after the fourth of six rounds.
Trailing 9-3 at half-time, the world champions took the lead when captain Siya Kolisi dived over for a try converted by Handre Pollard early in the second half.
All Blacks fly-half Damian McKenzie missed an easy-looking penalty with the score at 13-12 to the Springboks, who soon extended their lead.
With the All Blacks down to 14 players after Tyrel Lomax was sin-binned, Malcolm Marx touched down just inside the corner flag for a lead that proved to be enough.
Argentina meet Australia later on Saturday, with both sides needing a bonus-point win to have any chance of overtaking South Africa in the remaining Rugby Championship fixtures.
“We knew the All Blacks would bring it hard,” said Kolisi after his side’s victory, which also earned the Freedom Cup, a trophy contested by the two countries since 2004.
“We have been through a similar period and we know they will turn it around. It’s all about picking up from the big performances – in the past we would win one and then lose one. It’s very special to pick up the Freedom Cup – it is a special year, 30 years after democracy and I am very proud of the boys.”
The All Blacks, who let a 10-point lead slip before losing to South Africa a week earlier, were ahead throughout a disjointed first half thanks to McKenzie’s boot.
But after half-time, Kolisi went over for a try from close range shortly after Eben Etzebeth had been stopped just short of the New Zealand line.
Sacha Feinberg-Mngomezulu replaced Pollard and landed a long-range penalty before McKenzie kicked his fourth to make it 13-12.
McKenzie then hit the post with another penalty attempt, but his miss almost straight in front of the posts from about 35 metres proved a turning point.
Prop Lomax was shown the yellow card inside the last 10 minutes for impeding Cheslin Kolbe as the winger ran past him, and within seconds Marx had claimed the Springboks’ second try.
“We had opportunities, and against a quality side like the Springboks if you do not take them they will punish you,” said All Blacks captain Scott Barrett.
South Africa play Argentina away, then at home, in their remaining Rugby Championship fixtures.
Line-ups
South Africa: Le Roux; Moodie, Kriel, De Allende, Kolbe; Pollard, Williams; Nche, Mbonambi, Malherbe, Etzebeth, Nortje, Kolisi, Du Toit, Wiese.
Replacements: Marx, Steenekamp, Koch, Smith, Louw, Hendrikse, Feinberg-Mngomezulu, Am.
New Zealand: Jordan; Reece, Ioane, J. Barrett, Telea; McKenzie, Ratima; Williams, Taylor, Lomax, S. Barrett, Vaa’i, Sititi, Cane, Savea.
Replacements: Aumua, Tu’ungafasi, Newell, Darry, Jacobson, Perenara, Liernert-Brown, B. Barrett.
Referee: Matthew Carley (England)