Jasprit Bumrah destroyed Australia with a six-wicket haul to give India a huge 292-run first innings lead.
Pacer Jasprit Bumrah had Australia's batsmen tied up in knots with his immaculate line and length, giving India the decisive advantage that withstood a second innings batting collapse in the third Test in Melbourne on Friday.
Bumrah's career-best figures of 6/33 in 15.5 overs also made him the first bowler from the subcontinent to take a five-wicket haul or more in South Africa, England and Australia in the same year.
At stumps on Day 3, India, after bowling out Australia for 151 in response to their first innings total of 443/7 declared, took a 346-run lead.
Following a four-wicket burst from Pat Cummins, the visitors were struggling at 54/5 in 27 overs in their second essay but had the upper-hand courtesy of their huge first innings lead.
Debutant Mayank Agarwal (28 not out), who scored an impressive 76 in the first innings, and Rishabh Pant (6) were at the crease after 15 wickets fell in all on an exciting day.
In their second innings, India were jolted by Cummins (4-10), who took four wickets for two runs in the space of 19 balls, including Virat Kohli (0) and Ajinkya Rahane (0) caught off successive balls.
Rohit Sharma (5) prevented his hat-trick, but fell before end of play, caught behind off Josh Hazlewood.
This was after Bumrah's outstanding effort handed India a 292-run lead.
Bumrah returned second-best figures for an Indian bowler in Australia after Kapil Dev's 8-106 at Adelaide in 1985. But he surpassed Bhagwat Chandresekhar's twin hauls of 6-52 in each innings at this ground in 1977.
Post tea, Australia's innings lasted for only four overs as Bumrah quickly cleaned up the tail. First, he got rid of Tim Paine (22) caught behind, and then trapped Nathan Lyon (0) lbw.
Three balls later, he bowled Josh Hazlewood (0) to bowl out Australia cheaply but captain Kohli decided not to enforce the follow-on.
Cummins provided some joy to the Australian camp as he destroyed the Indian top order. He bounced out Hanuma Vihari (13) for the second time in this Test, while Cheteshwar Pujara (0) was caught at leg gully for a duck following his hundred in the first innings.
India were reduced to 32-4 with Cummins dismissing Kohli for a duck at the position, while Rahane (1) was caught down the leg side off the same bowler.
Earlier, Australia, who resumed after the tea interval on 145-7, lost a few quick wickets. It took only four overs for Bumrah to strike again as he bowled Travis Head for 20 with a quick incoming delivery which took the inside edge.
Australia were in dire straits at 92-5 and things didn't improve when Ravindra Jadeja (2-45) dismissed Mitchell Marsh, who was caught by Rahane at slip after the ball had come off an inside edge.
Paine and Pat Cummins (17) added 36 runs for the seventh wicket, taking Australia past the 100-run mark but Mohammed Shami dismissed the latter to give India the advantage again.
The visitors struck four blows in the morning session as Australia were reduced to 89-4 at lunch.
Starting from overnight 8-0, Australia were under the pump early on as Ishant Sharma (1-41) and Bumrah struck early.
Ishant struck in the fifth over of the morning as Mayank Agarwal scooped up a sharp catch at short midwicket to send back Aaron Finch for eight.
Four overs later, Marcus Harris (22) miscued the pull shot and was caught at fine leg off Bumrah.
Usman Khawaja was dismissed for 21, caught at short leg off Jadeja.
A magical piece of bowling Bumrah got India the wicket of Shaun Marsh, who was completely deceived by the slower and was trapped plumb in front of the wicket off the last ball of the morning session.
The four-match series is level at 1-1, after India won the first Test in Adelaide by 31 runs and Australia won the second match in Perth by 146 runs.