- Scorecard
India's pace bowlers staged a dramatic turnaround, claiming five wickets for 16 runs, before Philander hit a fluent 48 not out to take South Africa to 213 for six at stumps on Day 2.
He had earlier taken four for 61 to bowl out the visitors for 280 as they also lost their last five wickets for 16 runs.
Graeme Smith, who was dropped on 19, played a scratchy innings of 68 before Ishant Sharma (3-64) and Mohammed Shami (2-48) triggered the middle order collapse in the post tea session.
Morning session:
Starting at 255 for five, Indian skipper Mahendra Singh Dhoni (17 not out) and Ajinkya Rahane (42 not out) looked to build on the platform provided by Virat Kohli's hundred.
They started off well against Steyn and Philander, who were bowling with the second new ball which was only 10 overs old.
Rahane struck the first boundary of the day in the 93rd over, punching Steyn through the covers. At the other end, Dhoni was fiddling with a few played and missed shots, as the South African attack learnt from their mistakes on day one and were bowling a lot fuller, closer to the stumps. It slowed down the run-scoring as both batsmen started looking to leave as many balls as possible.
In the 99th over of the innings, Morkel tested Dhoni with a couple short of length deliveries, which the Indian captain left well.
However, Morkel pitched the last ball of that over slightly up and Dhoni had to play at it, giving an outside edge to wicketkeeper AB de Villiers.
He was visibly upset, shaking his head as he walked off, out for 19 runs adding only two runs to his overnight score. He faced 72 balls and hit three fours.
In the very next over, Philander took a leaf out of Morkel's book and pitched his deliveries even fuller, making an express impact.
On the fourth ball, he made the ball leave off-stump just a tad and Rahane, who had played with great judgement so far, felt for the delivery and was out caught behind.
He scored 47, adding only five to his overnight score, as India's hopes for a 350-plus total were undone. He faced 137 balls and hit eight fours in his long stay at the wicket.
Philander then trapped Zaheer Khan leg before wicket with the very next delivery, and found himself on a hat-trick whilst searching for his 100th Test wicket.
It was not to be as Ishant Sharma only edged one that fell just short of fourth slip. He did get him in the next over, 102nd of the Indian innings, a back of length delivery taking Ishant's off-stump, out for an eleven-ball-duck.
Ashwin had fended off Morkel at the other end for two overs. But the lanky Proteas' pacer found a way past Mohammad Shami's defence, bowling him off the last ball of 103rd over, finishing off the visitors' first innings for 280, as they lost their last five wickets for 16 runs.
The visitors had begun at their overnight score of 255 for five, but could only add 25 runs for the loss of five wickets as Philander took three wickets for just six runs.
He finished with impressive figures of four for 61 from 27 overs, while Morne Morkel picked up three for 34, adding another two from last evening.
At lunch, South Africa were 22 for no loss with Smith unbeaten on 11 off 26 balls, and Peterson was on the same score off 34 balls.
Post lunch session:
Graeme Smith led from the front with an unbeaten 62 to take South Africa to a comfortable 118 for one at tea on the second day.
Resuming at 22 for no loss in the post lunch session, South Africa lost opener Alviro Peterson (21) in the 14th over after he was trapped in front of the wicket by a sharp incoming delivery from Ishant Sharma.
Hashim Amla joined Smith in the middle and he was welcomed to the crease by a sharp bouncer from Ishant.
However, Amla settled down quickly and together with Smith frustrated the visitors for the rest of the session.
Smith gave more reasons to frustrate the Indians as Zaheer Khan tried every trick possible in his bag to get his bunny.
Zaheer's outswingers were really making the South African skipper uncomfortable, and Smith gave a thick edge in the 17th over of the innings, only for R Ashwin to drop him at first slip.
Smith was on 19 at that time and despite some streaky shots thereafter, he didn't give India another sniff.
Smith and Amla brought up the 50-run partnership for the second wicket in the 25th over, striking Ishant for two boundaries.
The hundred for South Africa came up in the 31st over. With the pacers failing to produce any further breakthrough. Dhoni introduced spin for the first time in the next over in the form of Ashwin (2-0-7-0).
But Smith welcomed the off-spinner in style, striking him for a boundary over mid-on, to raise his fifty off 98 balls.
Post tea session:
The hosts were cruising along comfortably at 130 for one before the Indian pacers wreaked havoc to completely change the complexion of the game on a Wanderers track which gave assistance to the quick bowlers.
The lanky Ishant Sharma (3/64) triggered the shocking batting collapse by dismissing Hashim Amla (36) and Jaques Kallis (0) off consecutive deliveries before Zaheer Khan got rid of captain Graeme Smith (68) -- all three wickets falling without a single run being added.
Mohammed Shami then struck for his team by dismising JP Duminy (2) and A B De Villers (13) in the same over to bring the Indians back into the game.
From 130 for one, the Proteas were suddenly struggling at 146 for six, losing five wickets in the span of 16 runs in the eventful last session.
The Proteas, however, recovered some lost ground with Faf du Plessis and Vernon Philander stitching 67 runs for the unbroken seventh-wicket stand as Indian bowlers went wicketless for the last 21.3 overs.
Philander and du Plessis were batting on 48 and 17 respectively at stumps with South Africa still trailing by 67 runs.
The Indians were unlucky not to have the wicket of du Plessis as he was dropped on 17 by Rohit Sharma off Shami at the fag end of the day.
Image: Vernon Philander
Virat promised me that he would score a century: Coach
Will India pick seven batsmen or go with five bowlers vs SA?
Kohli ton keeps South Africa at bay
Team India aim to close the gap with top-ranked South Africa
'The ODIs were disappointing but our preparation has been good'