Paceman Morne Morkel grabbed two big wickets in successive overs to boost South Africa's hopes of restricting India to a modest total in the third and final Test here on Saturday.
The 23-year-old dismissed well-set Venkatsai Laxman and former captain Rahul Dravid before the hosts reached 165-4 in their first innings at tea on the second day in reply to the tourists' 265.
Sourav Ganguly was unbeaten on 26 with Yuvraj Singh 21 not out.
South Africa lead 1-0 in the series following their victory by an innings and 90 runs in the second Test in Ahmedabad. The opening match ended in a draw in Chennai.
Laxman (50) and Dravid (29) put on 78 runs for the third wicket, but found it tough to score freely against South Africa's pace-spin combination on an uneven pitch.
Morkel, playing only his sixth Test, was sharp and unpredictable in his opening four-over spell after lunch as he tested both Laxman and Dravid with variations before removing them in quick succession.
Dravid not only lost his wicket, but also suffered a nasty blow on the left wrist off a delivery that jumped awkwardly off a good length, with AB de Villiers completing an easy catch at gully.
Laxman kept the South African attack at bay for more than two hours, executing handsome drives on both sides of the wicket during his 33rd Test half-century containing seven fours.
He was lucky to survive on 43 when Jacques Kallis dropped a sharp chance at first slip off left-arm spinner Paul Harris after getting his left hand to it. But the batsman could not cash in on the lifeline, falling seven runs later.
It was a clever piece of bowling that undid Laxman, who played early to a delivery that moved in to knock back the off-stump.
India struggled against pace in the morning session also, losing openers Virender Sehwag (eight) and Wasim Jaffer (15) in the first 11 overs.
Steyn, the most successful South African bowler in the series, provided the breakthrough in his third over when he trapped hard-hitting Sehwag leg-before.
Jaffer played a couple of attractive shots before falling leg-before in Morkel's opening over.
Laxman tried to ease the pressure, driving Morkel through the covers, flicking through mid-wicket and then edging between slips for three fours in an over.