Opener Shikhar Dhawan was batting on 31 at the break with Cheteshwar Pujara (14) at the other end.
Home captain Virat Kohli won his fourth successive toss in the series and opted to bat on a track which wore cracks but looked hard, unlike the rank turners used in previous Tests.
The nature of the surface was also reflected in India's team selection as they dropped leg-spinner Amit Mishra to draft in a second paceman in Umesh Yadav.
Morne Morkel often beat Vijay's bat, while Kyle Abbott's discipline meant the Indian openers managed 14 runs in the first 10 overs at Kohli's home ground where the hosts have not lost since 1987.
It was only after spin was introduced that Dhawan hit a full toss from Piedt through the onside for the first boundary in the 13th over.
Vijay (12) enjoyed a slice of luck after he edged Abbott to slip and began to trudge towards the pavilion when match officials, after several TV replays, decided the bowler had marginally overstepped.
Not that the right-hander could make the most of the reprieve, pushing at a Piedt delivery that found Hashim Amla in the slip.
Piedt is playing only his second test since his match-winning debut against Zimbabwe at Harare last year.
Dhawan grew in confidence with time, while Pujara hit an Imran Tahir full toss for a six in the final over before the lunch break.
South Africa effected three changes, bringing in opener Temba Bavuma, paceman Abbott and off-spinner Piedt for Stiaan van Zyl, Kagiso Rabada and Simon Harmer. – ReutersIndia reached 60 for one at lunch on the opening day of the fourth and final Test at the Ferozeshah Kotla stadium.
Original source: India off to a solid start