Priyank Panchal (45*) and Abhimanyu Easwaran (27*) were at the crease, with Lutho Sipamla having picked up the only Indian wicket to fall – Prithvi Shaw for 48.
Earlier in the day, South Africa declared their first innings closed on 509-7.
Captain Pieter Malan top-scored with 163 (282 balls, 19 fours) with Tony de Zorzi having been dismissed for 117 on day one.
Jason Smith was out early on day two for 52, but Sinethemba Qeshile (82*) and George Linde (51) also cashed in on the batter-friendly pitch.