Australia, fired by David Warner's 180, are closing on victory after reducing India to 88 for four in their second innings after two days of the third test on Saturday.
India, who already trail 2-0 in the four-match series and are heading for a seventh consecutive overseas test defeat, are still 120 runs shy of forcing the hosts to bat again.
India's bowlers, led by Umesh Yadav's 5-93, got their team back into the contest after the day one demolition, skittling the last six Australian wickets for 79 runs to leave the hosts all out for 369 at tea with a first inning's lead of 208.
The bounce of the WACA wicket once again proved too much for their batsmen, however, and Australia's pace quartet removed Gautam Gambhir (14), Virender Sehwag (10), Sachin Tendulkar (eight) and VVS Laxman (0) cheaply in the final session.
India will resume on Sunday with Rahul Dravid, who had made 32 not out, and Virat Kohli, unbeaten on 21, at the crease with three days of the contest remaining.
Australia would have been hoping for a bigger lead after dominating the opening day to bowl India out for 161 and resuming on 149 without loss on another hot day at the WACA.
Yadav, however, struck with three wickets in the hour before lunch, Ishant Sharma accounted for Warner, Zaheer Khan pitched in with two wickets and debutant R Vinay Kumar got his maiden test victim.
It could have been even better for the tourists had Kohli not dropped a simple catch when Warner, who hit the quickest century by an opening batsman in 69 balls on Friday, was on 126.
As it was, Warner, showing only flashes of the swashbuckling brilliance he displayed on Friday, was allowed to reach his first 150 in his fifth test before holing out 20 runs shy of a double century.
The 25-year-old lefthander, who had resumed on 104, hit a spectacular six through extra cover, his fifth of the innings, and two balls later grabbed his 20th four with the crispest of cuts.
Another two balls on, however, and a Sharma delivery was launched into the sky towards long on and Yadav got himself under it to take the catch, bringing an end to the innings after 261 minutes and just 159 balls.
Yadav had already separated the two Australian openers when he bowled Ed Cowan for 74 with 214 runs on the board in the hour before lunch.
Shaun Marsh managed just 11 runs on his home ground to continue his miserable form before Ricky Ponting had made seven when Yadav removed his middle stump for a third wicket.
Warner was next to go after the break and after his departure the wickets fell rapidly, the final six tumbling for just 79 runs.
Both captain Michael Clarke, who hit an unbeaten 329 in the last test, and Brad Haddin were caught behind off Zaheer in quick succession for 18 and a duck respectively.
Western Australian Mike Hussey was Vinay Kumar's first test wicket for 14 and Peter Siddle grabbed a handy 30 before Yadav took out his off stump.
Ryan Harris (nine) and Ben Hilfenhaus (six) could do little to extend the tail, the former giving Yadav his fifth wicket and the latter falling to Sehwag's occasional spin.