Rabada and Philander each struck for Proteas to give them an early advantage as India lost early two wickets during the third and final test match against South Africa.
India on Wednesday won the toss and opted to bat first at the Wanderers Stadium.
After losing two consecutive Test matches, India is playing very cautiously to avoid a series whitewash.
Meanwhile, Ajinkya Rahane, who did not play the first two Tests was recalled on the strength of a strong record in overseas Tests.
Dinesh Karthik was flown in as a replacement for injured wicketkeeper Wriddhiman Saha and could play at the expense of Parthiv Patel, who had a poor game with the gloves in the second Test at Centurion.