Mohammed Shami claimed three key wickets including skipper Faf du Plessis on Monday as India eyed a series whitewash after making South Africa follow on in the third Test.
At tea on day three in Ranchi, the tourists were trailing India by 309 runs on 26/4, and with Dean Elgar retired hurt on 16.
South Africa were dismissed for 162 in the second session in response to India’s 497/9 declared. The afternoon session was extended to make up for lost time due to bad weather on the first two days.
The hosts made them bat again, and Yadav drew first blood, getting the left-handed Quinton de Kock – who was promoted to opener – bowled for five.
Shami soon took over to get first innings half-centurion Zubayr Hamza for nought on a peach of a delivery that rattled the top of off stump.
The pace spearhead then got du Plessis’ prized wicket, trapping the captain lbw for four. Bavuma was caught behind for nought.
Both the quicks bowled a barrage of bouncers and one of Yadav’s short-of-a-length delivery hit the left-handed Elgar on the helmet.
The impact left the opener shaken as he lay on the ground getting physio assistance and officials called for early tea.
South Africa later announced Elgar would not return to the field, and after tea George Linde joined Heinrich Klaasen at the crease.
Brief scores
India 1st innings: 497/9 declared.
South Africa 1st innings: 162 all out in 56.2 overs (Zubayr Hamza 62, George Linde 37; Umesh Yadav 3/40).
South Africa 2nd Innings: 26/4 in 9.3 overs (Dean Elgar 16, Heinrich Klaasen 0 not out; Mohammed Shami 3/7).