Rohit Sharma smashed another hundred and a plethora of records as India set an improbable 395-run target for South Africa in first Test which is headed for an exciting final day.
Revelling in his new role, Rohit effortlessly walked his way into the record books as he scored 127 off 149 balls, following his 176, to become the first-ever batsman in the history of Test cricket to score two hundreds in his opening 'debut'.
In a debatable decision, India batted late into the final session on day four before declaring their second innings at 323 for four in 67 overs, giving themselves 45 minutes on day four and the whole of day five to bowl out South Africa.
In the end, only 30 minutes of play was possible due to bad light after South Africa came out to bat.
The pitch remains slow but is offering turn with the odd ball rearing up from the spots created. Ravichandran Ashwin, who took seven wickets in the first innings along with Jadeja, hold the key on the final day.
With the stodgy Elgar removed, the only other factor could be Quinton de Kock, who has often proved to be a thorn in India's flesh.
Considering their spirited effort with the bat in the first innings, South Africa would be backing themselves to bat out the 90 odd overs on the final day.
The day once again belonged to Rohit, who played yet another sublime knock at a brisk pace after the hosts bowled out South Africa for 431 almost one hour into morning session, earning a 71-run lead.
Rohit also broke the record of most sixes in a game with 13 maximums, surpassing Pakistan great Wasim Akram who smashed 12 in a match against Zimbabwe in 1996.
Rohit smashed six sixes in first innings and seven in the second, including a hat-trick of sixes off-spinner Dane Piedt in the 56th over when India were looking for quick runs.
His 169-run stand for the second wicket with Cheteswar Pujara (81 off 148) set the tone for India's second innings before Ravindra Jadeja (40 off 32), Virat Kohli (31 not out off 25) and Ajinkya Rahane (27 not out off 17) played their part. Considering the scenario, Jadeja had come out to bat ahead of Kohli.
With 175 for one at tea, India had extended their lead to 246 runs, scoring runs 140 runs in the session in 34 overs.
While stylish right-hander played in his usual fashion and kept the scoreboard ticking, Pujara found the going tough in the initial part of his innings which he scored eight runs off the first 62 balls faced.
However, after the first drinks break of the session, he went on the offensive, especially against the spinners. He stepped out to the spinners more often than not and other times he kept them guessing.
Thinking Pujara will dance down the wicket again, Piedt dropped one short and Pujara stayed back to pull it over deep mid-wicket for a rare six. Before that, he collected four boundaries off Maharaj to push up the scoring rate.
The luck was also on Pujara's side as Kagiso Rabada found the outside edge of his bat in the same over but on both occasions the ball landed between first slip and wicketkeeper before running to the boundary.
Rohit too was fortunate when Senuran Muthusamy caught him at long-on but after the review showed that he touched the boundary rope while releasing the ball for a legitimate catch on the second attempt.
Pujara, who hit 13 fours and two sixes, survived a close DRS call on the last ball before the break.
South Africa, resuming the day at 385 for eight, batted for 13.2 overs in the morning scoring valuable 46 runs courtesy debutant Muthusamy, who remained unbeaten on 33 off 106, and Rabada, who hit three welcome boundaries in his 15-run cameo.
India batted for close to an hour in the session and were 35 for one at lunch in 14 overs with Rohit-Pujara, extending their lead to 106 runs.
Maharaj dismissed first innings double centurion Mayank Agarwal (7) with a classical left-arm spinner delivery, which turned and bounce enough to take the edge for a simple catch at first slip.
The hosts would have been better placed if they did not allow South African tail to get some handy runs in the first hour of play. The 10th wicket stand between Muthusamy and Rabada fetched 35 runs.
Ravichandran Ashwin, who picked up his 27th five-wicket haul on Friday, added two more to his tally to end with the innings with 349 Test scalps.