India lost seven wickets for 55 runs early on the third day to slip to 327 all out as South Africa roared back in the first test at Centurion on Tuesday.

India began on 272-3, lining up a large first-innings total, before fast bowlers Lungi Ngidi and Kagiso Rabada put paid to those plans in a whirlwind of morning wickets at SuperSport Park.

Having kept their feet up all day on Monday as rain washed out the second day's play, Ngidi and Rabada returned with intent to share nine wickets in the innings and take six of the seven to fall on Tuesday.

South Africa was 21-1 at lunch in reply having lost captain Dean Elgar for 1. Jasprit Bumrah claimed his wicket in the first over via an edge to wicketkeeper Rishabh Pant as Elgar tried to defend on the back foot.

That was another sign the rain had spiced up the pitch for the pace bowlers.

Earlier, Ngidi finished with 6-71, his second-best career figures behind the 6-39 he took against India at Centurion in 2018. Rabada returned 3-72 and Marco Jansen wrapped up the innings with a first wicket on his debut when Bumrah was caught in the slips by Wiaan Mulder for 14.

Having set such a solid foundation on the first day, India received an early blow in the fourth over when opener KL Rahul tried to hook Rabada and was caught down the legside for 123, adding just one run to his score.

Ajinkya Rahane (48), Ravichandran Ashwin, (4), Pant (8), Shardul Thakur (4) and Mohammed Shami (8) all fell in the space of four overs as India faded after a promising start to its latest quest for a first test series win in South Africa.