India are just seven runs ahead of South Africa with only three wickets remaining.
Ajinkya Rahane played a fine rearguard innings, unbeaten on 50 off 84 balls laced with six fours, with Zaheer Khan (2, 17b) at the other end after the top-order collapsed.
Steyn (2/33) did the most damage early on, with Peterson (3/61) adding two wickets to his tally in the morning session as well.
Resuming on 68 for two, India had their two best batsmen -- Cheteshwar Pujara on 32 and Virat Kohli on 11 -- at the crease, and any hopes of seeing the day out rested on their shoulders.
Also Read
But all of it came to nought as Kohli was out on the first delivery of the day when Steyn bowled a short of length delivery outside the off-stump and the batsman played at it. Kohli, though didn't make contact, the ball seemed to have brushed his shoulder on its way to the keeper and umpire Rod Tucker adjudged him out.
An irate Kohli (11; 27b, 1X4) walked off, but India's disastrous tale continued as 16 balls later, Steyn bowled a superb delivery to fox Pujara (32; 100b 4X4), who thought he had covered the line of the ball. But his off-stump was rocked back as the batting side's hopes were deflated.
Rohit Sharma (25; 46b, 2X4, 1X6), at the other end, meanwhile was looking to make a first mark on this tour. He was involved in a verbal duel with Steyn, and looked to be in control when he hit a four off him in the 43rd over and then a six off Peterson three overs later. But he innings was cut short by Philander, who trapped him LBW, the ball jagging back off the pitch in the 51st over.