Skipper du Plessis scored 64 from 117 balls, his 21st Test fifty, with the help of six fours and a six before Ashwin found his outside edge and the ball flew to Ajinkya Rahane at slip.
With du Plessis gone, it was just a matter of time before the tourists folded up but Philander and Maharaj frustrated the bowlers with their unbroken 35-run ninth wicket stand. Philander was not out on 23 while Maharaj was on 21 at the break.
Before Faf, Senuran Muthusamy (7) was trapped in front by left-arm spinner Ravindra Jadeja.
Earlier, the Indian bowlers continued their dominant performance to leave South Africa staring down the barrel by picking up three wickets in the morning session.
Starting the day at 36/3, South Africa lost both their overnight batsmen Anrich Nortje (3) and Theunis de Bruyn (30) in the first hour of the play.
Nortje, who came in as night watchman on Friday evening, was the first wicket to fall as he was caught brilliantly at fourth slip by Virat Kohli off the bowling of Mohammed Shami.
Three overs later, de Bruyn played a loose shot and in the process got a thick outside edge against Umesh Yadav. Wicketkeeper Wriddhiman Saha dived to his right and took a stunning catch to end de Bruyn's inning.
Quinton de Kock and du Plessis then tried to steady the ship for the visitors and shared a crucial 58-run stand before de Kock was bowled by ace off-spinner Ravichandran Ashwin at his individual score of 31.
Brief scores: 1st innings: India 601/5d; South Africa 197/8 (Faf du Plessis 64, Quinton de Kock 31; Umesh Yadav 3/32).
( With inputs from IANS )