Rachin Ravindra underlined his all-round talent with two wickets as South Africa limped to tea at 127-5 on day one of the second and final Test against New Zealand
South Africa's tactic of batting patiently was foiled late in the second session in Hamilton as Ravindra removed Zubayr Hamza for a painstaking 20 off 99 balls and Keegan Petersen for two.
David Bedingham was 25 not out while Ruan de Swardt was on 16.
New Zealand lead the two-match series 1-0 following their 281-run triumph at Mount Maunganui and need a draw for a first-ever series victory over the Proteas.
Ravindra was man of the match in the first Test after scoring 240 but showed at Seddon Park he can also be a force with his left-arm spin.
The 24-year-old conceded only one run from his first five overs before Hamza lost patience and top-edged a slog sweep to backward point.
Ravindra, playing his fifth Test, struck again in his next over when Petersen was caught by Tim Southee at first slip and he had figures 2-9 off 11 overs at the break.
Makeshift opener Clyde Fortuin was dismissed for nought first ball in the second over as South Africa made a terrible start after winning the toss.
Wicketkeeper Fortuin, promoted up the order, slashed at Matt Henry's opening delivery and was caught superbly by a diving Glenn Phillips at gully.
Pace bowler Will O'Rourke took a wicket on debut when he had captain Neil Brand trapped leg before wicket for 25.
Raynard van Tonder was out for 32 in the over before lunch, caught at gully after failing to get on top of Neil Wagner's short delivery.
Most of South Africa's first-choice Test players have remained at home to compete in a domestic Twenty20 competition.
The Proteas made two changes to the side that lost the first Test containing six previously uncapped players.
New Zealand debutant Will O'Rourke (left) celebrates his first wicket in Test cricket. By Fiona Goodall (AFP)
Leg-spinning all-rounder Shaun von Berg was handed a debut at the age of 37 while off-spinner Dane Piedt was recalled for his 10th Test in place of opener Edward Moore and seamer Duanne Olivier.
For New Zealand, 22-year-old O'Rourke replaced Kyle Jamieson, who had back pain following the first Test.
Veteran seamer Wagner was recalled in place of spinner Mitchell Santner while Will Young replaced batsman Daryl Mitchell, who was ruled out with a foot injury.