Off-spinner Ravi Ashwin bagged four wickets as India held a 62-run lead at stumps on day two of the Adelaide day-night Test.
Australian captain Tim Paine was left stranded on 73 not out when the Australian innings ended at 191 to trail India's 244 by 53 runs.
It could have been a lot worse for the hosts as they were reduced to 111-7. But some brave batting by the tailenders cut the gap in half.
Ashwin had figures of 4-55 while Umesh Yadav took 3-40.
At stumps, India in their second innings were one down for nine with Mayank Agarwal on five and nightwatchman Jasprit Bumrah yet to score. Prithvi Shaw was bowled by Pat Cummins for four.
Fifteen wickets fell on the day which started when Cummins and Mitchell Starc took just 25 deliveries to knock off the final four India batsmen.
Australia in turn struggled to make headway as Bumrah, Ashwin and Yadav worked their way through the batting order.
India spilled as many as five chances, including top scorers Marnus Labuschagne (47) and Paine, which denied them a substantially bigger lead.
After Australia took 28 balls to get their first runs on the board, Bumrah stepped up to remove openers Matthew Wade and Joe Burns for eight each before dinner.
Ashwin's spin captured the wickets of Steve Smith, Travis Head and Cameron Green between dinner and tea with Smith, the world's premier batsman, facing 29 deliveries for his sole run.
In the final session Yadav took Labuschagne and Cummins to expose the tail and joined Ashwin to take the final two wickets of Nathan Lyon and Josh Hazlewood.
Labuschagne was dropped three times before his luck ran out after tea when he was trapped in front by Yadav. It was a fruitful over for Yadav, who removed Cummins before he could score.