Kohli and Pujara rescued their side from collapsing after losing their openers early in the second innings.
Bumrah claimed a brilliant 5 wicket haul to help India in getting a lead of 13 runs in the first innings.
The young Petersen played a superb knock of 72 runs against the quality bowling of Indian fast bowlers.
India 1st innings 223 all-out
Kohli 79 Rabada 4-73 Pujara 43 Jansen 3-55
South Africa 1st innings 210 all-out
Petersen 72 Bumrah 5-42 Bavuma 28 Shami 2-39
India 2nd innings 57-2
Kohli 14* Jansen 1-7 Rahul 10 Rabada 1-25
South Africa lost Markram early on in the day before adding any run to their overnight score of 17 runs.
Bumrah bowled out Markram to give his side a dream start of the day.
The nightwatchman Keshav Maharaj showed some brilliant resistance as he scored 25 runs off 45 balls, he was also bowled out but the bowler was Umesh Yadav this time.
After losing 3 wickets on just 45 runs, Petersen and van der Dussen scored a much-needed partnership of 67 runs.
Van der Dussen was playing nicely but unfortunately, after scoring only 21 runs he got caught out at the second slip.
Umesh Yadav bowled a superb delivery that swung away late and Rassie got a thick edge they went straight into the hands of the second slip fielders and Virat Kohli took an easy catch.
The captain Bavuma then joined Petersen and added 37 runs for the 5th wicket.
Bavuma also failed to convert his good start into big innings and got out after scoring 28 runs.
Shami broke this stand by dismissing Bavuma who got caught out after scoring 28 runs.
After losing Bavuma, South Africa started to lose wickets at regular intervals but the biggest scalp was the dismissal of Keegan Petersen who was given caught out after smashing a superb knock of 72 runs.
The young Petersen played a mature innings and showed everyone why he is rated so highly.
South Africa was dismissed on only 210 runs, giving a lead of 13 runs to the Indian team.
Bumrah’s fantastic 5 wicket haul
Jasprit Bumrah bowled outstandingly today and picked up a brilliant 5 wicket haul against the Proteas.
This was Bumrah’s 7th away 5 wicket haul in Test cricket.
Jasprit Bumrah got the important wickets of Elgar, Markram, Petersen, Ngidi, and Jansen.
He showed why he is regarded as one of the best fast bowlers in the world right now.
India also lost their openers early in and they were struggling on 24-2.
Rabada and Jansen picked up 1 wicket each in the second innings so far.
Virat Kohli and Cheteshwar Pujara once again rescued their side by building a small but effective partnership for the 3rd wicket.
Both of them will look to set a good target against the South African side tomorrow.