Pujara made 153 and Kohli 96 as India made 358 for six at lunch and extended its overall lead to 394 runs.
Ajinkya Rahane (15) fell at the stroke of the break with skipper Mahendra Singh Dhoni unbeaten on 16.
Resuming at 284/2, India added 74 runs in the first session but lost four quick wickets for just 43 runs.
Both Pujara and Kohli were watchful as Dale Steyn and Vernon Philander bowled a probing line and length.
But it was double strikes from the veteran all-rounder Jacques Kallis that put India on the backfoot early in the day. For Pujara, it was a lapse in concentration that cost him his wicket. Soon after he got his 150, Pujara went for a cut but edged it to AB de Villiers. Rohit Sharma (6) was castled by a delivery that kept low and darted in sharply.
After the two quick wickets, the focus was on Kohli, who was just sniffing distance away from joining the likes of Vijay Hazare, Sunil Gavaskar and Rahul Dravid as the only Indians to make a century in each innings of a Test.
But four short of what would have been his sixth Test century, Kohli threw away his wicket nicking to De Villiers off Jean Paul Duminy. Kohli stood in shock and disbelief as he missed out on a golden chance of becoming the first Indian No.4 to score a ton in each innings.
Rahane became Duminy's second victim of the day as he reached out for a forward defensive shot but got a thick outside edge and Smith pouched it quite well in the slip.
--IANS (Posted on 21-12-2013)