The touring side, trailing the three-test series 1-0, crawled to 197 for eight wickets at tea, still 404 runs behind India's mammoth first innings total of 601-5 declared.
Vernon Philander was unbeaten on 23 with Keshav Maharaj 21 not out at the break, the pair having kept India at bay for over 18 overs during an unbroken ninth-wicket stand of 35.
Fast bowlers Umesh Yadav and Mohammed Shami made early inroads before spinners Ashwin and Ravindra Jadeja caused further damage to South Africa.
The Proteas relied heavily on du Plessis to first avoid follow-on and then bid for a draw to keep the series alive but the right-hander fell for 64 after lunch to off-spinner Ashwin.
Yadav's last appearance for India was at Perth against Australia in December and he was only included in the side for the second test with the Pune pitch sporting a tinge of green.
Having already dismissed South Africa's openers on Friday, Yadav sent back number three batsman Theunis de Bruyn for 30 with wicketkeeper Wriddhiman Saha taking a sharp catch.
Shami had earlier picked up his second wicket and the first of the day for India in the third over by sending back nightwatchman Anrich Nortje.
Du Plessis and Quinton de Kock then fought back for South Africa and showed determination and positive intent against India's spinners during a 75-run stand after the side had been reduced to 53-5 at one stage.
Ashwin broke the partnership by bowling out de Kock for 31 in a body blow to the touring side.
Du Plessis played some classic drives and effective sweep shots, hitting nine fours and a six before edging Ashwin to slip.
Jadeja took out Senuran Muthusamy but Philander and Maharaj, who looked in pain batting with an injured shoulder, soldiered on for the touring side.