Pujara and Kohli batter South Africa
India 280 and 284 for 2 (Pujara 135*, Kohli 77*) lead South Africa 244 (Smith 68, Philander 59, Ishant 4-79) by 320 runs
Scorecard and ball-by-ball details
On Friday morning, India fans were cautiously optimistic after their side put in tenacious displays on the first two days of a Test South Africa were widely expected to dominate. By Friday evening that had turned into full-blown jubilation as India's batsmen put them on course for what could be one of their greatest Test victories.
Most of India's young batsmen have forged their reputations on the back of high-octane limited-overs innings. For the second time in three days, they showed they also had the patience and adaptability to thrive in the longer format.
Cheteshwar Pujara gave a masterclass in innings building - he consumed 64 deliveries to make his first nine runs as Dale Steyn and Vernon Philander had the new ball curling around, but with the attack fading as the day progressed, he caned nearly a hundred runs in the final session.
Virat Kohli's dream Test continued, as he backed up a first-innings century that showcased his discipline with a more expansive half-century, remaining on course to become the first Indian No. 4 to make a hundred in each innings of a Test. He was the junior partner in an unbroken 191-run partnership for the third wicket with Pujara, which took the lead past 300, and almost certainly beyond South Africa's reach.
While those two will take much of the plaudits for a near-perfect day for India, M Vijay also did his bit with a watchful 39, highlighted by his readiness to leave deliveries outside off. His innings lasted more than two-and-a-half hours and served to blunt the best of South Africa's bowlers. The flashy strokeplay that makes him a Twenty20 star was put aside as he grafted in the face of some hostile bowling, playing the sort of understated role perfected by former opener Aakash Chopra in the famous 2003-04 Australia series.
The only batsman to miss out was Shikhar Dhawan, but towards the end of the day, India were in such a commanding position that he was cheerfully swaying his arms to the rhythm of a song sung by the Wanderers crowd.
As good as the Indian batsmen were, their task was made a lot easier when Morne Morkel, South Africa's best bowler in the first innings, twisted his ankle while fielding and was ruled out of action for at least a week. With another specialist bowler, Imran Tahir, struggling to land the ball, South Africa were severely hampered but the presence of the allrounder Jacques Kallis softened the blow as he wheeled in gamely, and tested the batsmen for much of the second session.
By tea, the two frontline quicks, Steyn and Philander, had already sent down plenty of overs, and Graeme Smith was forced to turn to other options. Tahir had an extended spell, which again contained a mix of long hops and full tosses, and helped India gallop along. But he produced the only real chance of the final session, which only worsened his day, as he put down a simple caught-and-bowled opportunity that would have ended Pujara's innings on 51.
Till then, though India were steadily moving into a strong position, the bowlers still had a say in the proceedings and were successful in limiting the batsmen from scoring. All that changed over the next couple of hours, as Pujara showed he can bash as well as he can block. The signature cut shot made a frequent appearance, highlighted by successive boundaries off Kallis in the 54th over, first in front of point and then behind it. The wheels came off for South Africa - the cracks in the track seemed to have no influence and the variable bounce went missing - as Pujara and Kohli plundered 46 in five overs.
With the shine off the ball, Kohli was in an enterprising mood right from the start as he faced down a fiery spell from Steyn, who was constantly bowling in the mid-140s just before tea - about 10kph more than he averages with the new ball. A top-edged pull for four marked the start of Kohli's boundary count, though the others were far more convincing, as he reached his 50 off 74 deliveries.
His powerful pull off Philander to midwicket a few overs before close was a representation of India's total dominance, but he was a little subdued after his half-century, with Pujara scoring the bulk of the runs. Besides showcasing a watertight technique, Pujara also showed off another facet of his batting that domestic attacks in India have long feared - the penchant for big runs.
Already he has three 150-plus Test scores, and a fourth isn't too far away. The disappointment of his first-innings run-out was forgotten with a cracking drive through cover off Steyn to bring up his first century away from home, and he accepted the gifts on offer from Tahir and Duminy to finish unbeaten on 135.
The batsmen extended the good work done by Zaheer Khan and Ishant Sharma at the start of the day, who wrapped up the South Africa tail within 45 minutes to hand India a 36-run first-innings advantage.
Perhaps the one bright spot for South Africa on the day was Philander rewarded with the early wicket of Dhawan for a terrific opening spell, a dismissal that made him the fastest South African to 100 Test wickets. That will be cold comfort for South Africa fans, after they witnessed one of their team's toughest days in Test cricket in recent years.
Siddarth Ravindran is a senior sub-editor at ESPNcricinfo