Cheteshwar Pujara struck his 11th hundred as India chipped away at Australia's first innings score of 451, closing day three of the third Test at Ranchi on 360-6 - 91 behind.
Pujara's marathon 130no off 328 balls - the first century by an Indian batsman in the series - was the mainstay of a home reply briefly rocked by Virat Kohli's dismissal for six.
Skipper Kohli batted in his usual position at four, laying to rest injury concerns after a long absence from the field on day two with a shoulder injury.
But his stay was short-lived as he was caught on the drive by his opposite number Steve Smith at second slip off fast bowler Pat Cummins, who ended the day with impressive figures of 4-59 off 25 overs.
Cummins, playing his first Test after more than five years in the wilderness, plugged away in tandem with Josh Hazlewood (1-66), with Steve O'Keefe (1-117) the only other bowler to strike.
India began the day on 120-1 and Pujara and Murali Vijay (82) went on to post their sixth century partnership of the season.
Vijay, playing his 50th Test, survived a bat-pad catch on 58 when an inside edge went undetected and Australia had run out of reviews.
But the opener fell in the final over before lunch when he was stumped off O'Keefe, having struck 10 boundaries and a six.
Kohli fell shortly after the resumption when he drove loosely at Cummins and Ajinkya Rahane (14) fell attempting an audacious ramp shot as the seamer dug one in, only to feather a catch behind.
The hosts took tea 148 runs in arrears at 303-4 and battled on after the break with Pujara's patient knock to the fore.
Hazlewood's endeavour was rewarded when he bowled Karun Nair (23) with the help of some reverse swing and Cummins successfully overturned a 'not out' decision against Ravichandran Ashwin when replays showed the all-rounder had gloved a short delivery through.
Wicketkeeper-batsman Wriddhiman Saha (18) was batting alongside Pujara at the close of play, which came with the Test tantalisingly poised.
Watch day four of the third Test between India and Australia live on Sky Sports 2 from 3.50am on Sunday.