On a lifeless wicket, India reached 181 for one without much drama at Kingsmead after the tourists won the toss and elected to bat, managing to blunt the much-vaunted South African attack on a ground where the home side have lost their last four Test matches.
Vijay will resume on day two at 91 and Pujara on 58, the pair sharing a stand of 140 having made batting look comfortable before the players left the field for bad light just after tea with 61 overs bowled.
The pitch is slow, with only Morne Morkel (one for 26) managing to unduly trouble the batsmen by extracting some bounce from the wicket.
Morkel passed a late fitness Test, which South Africa captain Graeme Smith described as a "miracle" as the big fast bowler recovered from an ankle ligament strain picked up in the first Test in Johannesburg that finished in a draw on Sunday.
The only wicket to fall was that of opener Shikhar Dhawan (29) as Morkel came around the wicket to the left-hander and had him caught at third slip by Alviro Petersen with the India score on 41.
Dale Steyn once again battled to find his best form and has now bowled 408 deliveries since taking his last wicket, that of Dhawan in the first innings in Johannesburg. His career average is a wicket every seven overs.
South Africa made one change to their starting line-up, replacing leg-spinner Imran Tahir with Robin Peterson, but he has gone wicketless in 12 overs and conceded 43 runs.
India also swapped slow bowlers, Ravindra Jadeja coming in for Ravichandran Ashwin.
This Test will be the 166th and last for South African all-rounder Jacques Kallis, who made his debut against England at this ground in 1995.