Shami and Bumrah shared three wickets each in the morning session on day four, effecting a South African collapse in which they lost 8 wickets for only 65 to be bowled out for 130
in the second innings.
With home team extending the lead to 207 runs, India will have to chase down 208 for their third ever Test win on South African soil.
Starting from day two overnight 65/2, the slide began in the second over of the morning.
Shami had Hashim Amla (4) caught at gully with Rohit Sharma taking a low catch. The decision went up to the TV umpire but he didnt find conclusive evidence to overturn the soft signal.
Four overs later, Shami sent back nightwatchman Kagiso Rabada (5), caught at second slip. In the 29th over then, when Bumrah had Faf du Plessis (0) caught behind off a snorter, South Africa were struggling at 82/5.
Bumrah also removed Quinton de Kock (8) as it became 92/6 and the collapse became imminent.
AB de Villiers (35 runs, 50 balls, 2 fours, 2 sixes) waged a lone battle at the other end but he just couldnt find anyone to support him as Shami trapped Vernon Philander (0) lbw to take 11/3 in six overs this morning.
Wriddhiman Saha took his 10th catch of the Test when Morne Morkel (2) was caught behind off Kumar two overs later.
Bumrah completed South Africas misery as de Villiers holed out in the deep in search of some quick runs, rounding up a dismal morning. Dale Steyn, batting despite a bruised ankle, was the unbeaten batsman.
On day one, South Africa were bowled out for 286 runs in the first innings with Bhuvneshwar Kumar taking 4-87. India were reduced to 28/3 at stumps.
On day two, India finished with 209 runs in their first innings, surrendering a 77-run lead.
South Africa were 65/2 at stumps with an overall lead of 142 runs. Hardik Pandya single-handedly kept his side in contention with 93 runs off 95 balls and then took 2-17 as well.
Day three was completely washed out due to persistent rain.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)