Indian a;ll-rounder Hardik Pandya stood tall amid ruins with his 93-run knock and two-wicket haul but hosts South Africa were still very much in command with a current lead of 142 runs against India after an enthralling second day in the first Test.
Pandya played a swashbuckling innings of 93 off 95 balls as India managed a face-saving 209 after being in tatters at 92 for 7 during a typical Test match day where there was an even contest between bat and ball.
With cushion of 77-run lead, the Proteas top-order batted with more purpose as they finished the day at 65 for 2 but Pandya (2/17 in 4 overs) was again in the thick of things getting the wickets of openers Aiden Markram (34) and Dean Elgar (25).
At stumps dependable Hashim Amla (4 batting) was in company of nightwatchman Kagiso Rabada (2 batting). Call it a coincidence, Pandya's all-round show that gave India a toehold came on the 59th birthday of India's greatest ever all-rounder Kapil Dev.
However with three days of play left and the pitch easing out compared to the first day, India will have an uphill task if they are to chase anything in excess of 275 runs.
That India were not completely out of the match is solely due to Pandya's swift yet brutal counter-attack that provided the visitors with much-needed breathing space.
Pandya justified his inclusion adding an invaluable 99 runs for the 8th wicket with Bhuvneshwar Kumar (25) after India looked down and out at 92 for 7.
Pandya hit 14 boundaries in all and a six off left-arm spinner Keshav Maharaj during his entertaining knock.
The Baroda dasher didn't complicate things and more importantly like AB de Villiers decided to take the attack back to the opposition camp without trying to defend doggedly.
He trusted the bounce, got on top of the rising deliveries and played some audacious strokes square of the wicket despite getting two reprieves on 15 (dropped in the slips by Dean Elgar) and on 71 (stumping chance missed) respectively.
Pandya gave Maharaj the charge but missed it completely and Quinton de Kock made a mess of stumping opportunity.
Post lunch, Vernon Philander (3/33 in 14.3 overs) struck off the very first ball as Cheteshwar Pujara (26) was caught at second slip.
Two overs later, he had Ravichandran Ashwin (12) caught behind as India were reduced to 81/6. It was Philander's 100th Test wicket at home.
Earlier, Pujara (26) battled hard during the first session only to be dismissed off the first ball in the post
Only 48 runs were scored off 25 overs during the first session in which Rohit Sharma (11, 59 balls) was trapped leg before by Kagiso Rabada (3/34 in 16.4 overs) after he did all the hardwork during the first hour.
Starting from overnight score of 28 for 3, Pujara and Rohit were ready to show patience and frustrate the opposition bowlers.
They were content playing out deliveries and preserving wickets rather than scoring runs.
Philander didn't concede single run in his first five overs, keeping a tight leash on Rohit.
He beat the batsman on a few occasions but it wasn't enough to induce an edge.
Morkel came on as first change just before the drinks' break and immediately he extracted more bounce from the surface.
India then crossed 50 in the 27th over. The visitors only added 17 runs in the first hour of play.
The big moment came when Rabada came on to bowl. He looked like taking a wicket from the very start as he troubled Rohit with pace, bounce and movement. Finally, in the 29th over, he succeeded in doing so, trapping Rohit plumb in-front. The batsman used up a DRS review but the decision stayed in South Africa's favour.
Pujara and Rohit had added 30 runs off 121 balls for the fourth wicket.
Ashwin and Pujara batted out the remainder of the session. The former looked for scoring opportunities more than his partner and quickly moved into double figures to give some respectability to the Indian total going into the lunch break.
(With PTI inputs)