South Africa suffered an early-morning collapse as India claimed three top-order wickets during the first session on day three of the second Test in Durban.
After resuming on 82-0, the Proteas added just 31 runs in the time that it took the tourists to dismiss Graeme Smith (47), Hashim Amla (3) and Alviro Petersen (62).
Smith's time at the crease was ended by an outstanding running catch from Shikhar Dhawan at mid-on off the bowling of Ravindra Jadeja.
Amla was then clean bowled by Mohammed Shami, before Petersen became Jadeja's second victim when he edged to Murali Vijay in the slips.
AB de Villiers and Jacques Kallis have since steadied the South African ship. The duo will resume after lunch on 39 and 26 respectively, with South Africa 153 runs behind their opponents' first-innings total on 181-3.