Rohit Sharma continued his sensational run as a Test opener with his third ton of the series, allowing India to regain control of the proceedings after a top-order collapse in the third game.
With India reduced to 39 for three, Rohit (117 batting off 164 balls) and Ajinkya Rahane (83 batting off 135) shared an unbeaten 185-run stand to stage the home team's remarkable recovery.
India were 224 for three before bad light, followed by rain, forced an early end to play on day one with only six overs possible in the final session.
Rabada got rid of opener Mayank Agarwal (10) and Cheteshwar Pujara (0) inside the first-hour of play.
But it was Nortje who earned the biggest wicket as he sent back Pune Test's double centurion Kohli after the skipper failed to read one that came back in sharply.
IPL 2020 | Fans unhappy with MS Dhoni's comment on CSK youngsters lacking spark
IPL 2020 | Jos Buttler can win games at back-end like AB de Villiers, Kieron Pollard: Steve Smith
IPL 2020 | Resurgent KXIP look to continue turnaround against high-flying Delhi Capitals
IPL 2020 Dream11 Predictions: Kings XI Punjab vs Delhi Capitals fantasy tips
IPL 2020 | 'We were not really there': Has MS Dhoni given up on CSK's hope of a turnaround?
Kris Srikkanth slams MS Dhoni for 'didn't see much spark from youngsters' comment