Pant and Kohli steadied India's ship after a horror start to the day saw them lose Cheteshwar Pujara on the second ball and then Ajinkya Rahane in the very next over. Pujara tried to glance a short ball from Marco Jansen but Keegan Petersen, at leg slip, dived to his right and completed a stunning one-handed catch. Rahane, on the other hand, went for a tame poke off Kagiso Rabada but the extra bounce took the glove-edge to keeper Kyle Verreynne and evaded him but Dean Elgar took the catch at first slip on the rebound.
Pant looked assured at the crease, mixing control with aggression and putting away anything loose that's been on offer, from South Africa's bowlers, towards the boundary rope. Pant began by crunching Rabada for two boundaries off back-foot on both sides of the wicket. He drove well through off-side off Lungi Ngidi and smacked Duanne Olivier by coming down the pitch and lofting over extra cover.
Pant's counter-attack allowed a patient and focused Kohli to take his time and solidify himself from the other end. With the bounce becoming a threat, Kohli was ready to leave everything which was threatening and used soft hands while defending, with anything drifting down the leg-side to be glanced for boundaries. Pant then launched Keshav Maharaj over long-on for a six and reached his first Test fifty against South Africa with a brace through mid-wicket to bring stability to India's second innings.
Brief scores: India 223 in 77.3 overs and 130/4 in 43 overs (Rishabh Pant 51 not out, Virat Kohli 28 not out; Kagiso Rabada 2/45) lead South Africa 210 all out in 76.3 overs (Keegan Petersen 72; Jasprit Bumrah 5/42) by 143 runs