Opener Shikhar Dhawan was caught by Alviro Petersen at slip off Morne Morkel's bowling for 29 before lunch.
But India dominated from then on as Vijay (91 not out) and Pujara (58no) put on 141 for the second wicket.
The two-match series is level at 0-0 after a thrilling draw in Johannesburg.
All-rounder Jacques Kallis, who is bringing his 166-Test career to a close after the match, bowled seven wicketless overs.
The failing light saw umpires Steve Davis and Rod Tucker call a halt to proceedings in the 61st over, shortly after tea.