South Africa skipper Graeme Smith and Jacques Kallis both scored centuries and combined for a 200-run partnership as the tourists virtually batted New Zealand out of the first Test by the close of play on the third day on Friday.
Smith (115) and Kallis (107 not out) had come together with their side on 47 for two and with just a 12-run lead after Doug Bracewell had taken two wickets in one over before lunch to give the hosts hopes of pushing for an upset victory.
The experienced duo, however, consolidated their innings before lunch then built on it afterwards to guide South Africa to 268-3 by the close of play at University Oval in Dunedin, an overall lead of 233.
Jacques Rudolph, who was given out lbw to Bracewell shortly before the close but had the decision overturned when television replays showed the ball had marginally pitched outside leg stump, was with Kallis on 13.
Smith brought up his 24th Test century from 201 balls when he flicked a Daniel Vettori delivery through a packed onside field for a single, while Kallis achieved his 42nd Test century with a quick single into the off side.
The South African captain had fallen shortly before Kallis reached his ton, becoming Bracewell's third victim of the innings when he was bowled by the seventh delivery with the second new ball.
New Zealand had been buoyed before lunch when Bracewell had dismissed Alviro Petersen (25) and Hashim Amla (2) in the same over to leave South Africa struggling.
Momentum looked to be swinging the hosts' way after Trent Boult's cameo of 33 not out gave them a 35-run first innings lead.
South Africa need to sweep the series 3-0 to take over the world number one Test ranking from England.