From 78 for no loss at lunch to 140-1 at tea, South Africa would collapse to 269-6. They had been cruising at 246 for three and seemed set for a big total after winning the toss and batting on an easy-paced pitch.
Around all these missed opportunities, South Africa were scoring some valuable runs; du Plessis had driven Shami straight and punched Shami through cover point for fours, and then swept Ashwin hard and low to the square-leg boundary.
The day changed dramatically with an outstanding piece of fielding by Hardik Pandya, who ran out Amla for 82.
They lost another wicket on the next ball when new batsman Cheteshwar Pujara took on the arm of Lungi Ngidi at mid-on and lost, run out by a direct hit. First, he nicked a quick-turning offbreak from Ashwin to the right of Virat Kohli at slip, and India's captain got a hand to the ball but couldn't hold on. India removed South Africa's last seven batsmen for just 89 runs.
Contrary to expectations, there was no assistance for the fast bowlers and Ashwin carried the bowling attack, taking two for 53 in an unchanged 17-over first spell before coming back to bowl another lengthy spell.
Steven Spielberg backs Oprah Winfrey to be next U.S. president
Oprah? The president says it'd be fun, unlikely, and the result would be a foregone conclusion. Trump added: "I don't think she's going to run".
He struck the ball with authority, particularly off the back foot, before he tried to guide a ball from Ashwin towards third man and was caught behind by Parthiv Patel.
Offspinner Ravichandran Ashwin took 4-113 and wrapped up the South African innings when Morkel was caught at long off. Twice in two balls, India's fielders let off Rabada.
Ashwin and Sharma were the two outstanding bowlers for the Indians; with the off-spinner picking up 4/113 in 38.5 overs, while Sharma, who replaced Bhuvneshwar Kumar, claimed 3/46 in 22 overs. South Africa were 148-2, still looking good, as AB de Villiers walked in.
The 21-year-old has only played nine first class matches in his career, but featured in two Twenty20 Internationals against Sri Lanka 12 months ago that included a return of 4-19 before injury sidelined him for the rest of the tour.