Kohli looked in good touch as he went into the lunch undefeated on 32 while Cheteshwar Pujara was batting on 18.
The duo added 46 runs for the undefeated third wicket stand after South African speedsters Dale Steyn and Morne Morkel removed Shikhar Dhawan (13) and Murali Vijay (6) to reduce the visitors to 24 for two in 15.1 overs.
Kohli's run-a-ball 32 had five boundaries including a couple that came off the last over before lunch off leg-spinner Imran Tahir's bowling.
Steyn and his new ball partner Vernon Philander bowled a lot of outswingers in their initial overs, beating the batsmen on couple of occasions, yet not getting that first chance until the 5th over.
Also Read
Dhawan just jabbed at a short ball, which looped up but there were no close-in fielders. Thereafter, the opening duo seemed to settle down just a tad, pushing and prodding with confidence as they negotiated the first thirty minutes without any loss. India were sedately going along having scored eight runs in the first five overs.
The fifth ball, again short, went down legside and the batsman made an attempt to play at it. And then finally on the last ball of the over, Dhawan was out caught fine leg by Imran Tahir, as he mistimed a pull-shot again.