Cheteshwar Pujara compiled an industrious unbeaten century to keep India on course to match Australia's first-innings total of 451 in the third test on Saturday.
Australia paceman Pat Cummins made a successful return to test cricket after five years in the wilderness, oozing hostility and claiming 4-59 on a placid track to help restrict the hosts to 360-6 on day three of the contest.
Pujara was batting on 130 at stumps, the first century by an Indian batsman in the four-test series, having spent nearly seven hours at the crease to consolidate his team's position in the contest.
Wriddhiman Saha was giving him company on 18 with India still 91 runs behind.
Pujara is a steady accumulator of runs in an Indian line-up of mostly flamboyant stroke-makers and his solid defence stood him in great stead as his 11th test century underlined the virtue of playing along the turf, minimising risks.
The 29-year-old hit 17 boundaries in his composed knock, often threading the ball through gaps and letting the exceptionally fast outfield carry it across the rope.
Another debate, this time it's Maxwell vs Kohli: https://t.co/5qASn1p9TdWhat did you think of the 'gesture' by Maxi today?#Poll #INDvAUS— ScoopWhoop News (@scoopwhoopnews) March 18, 2017
Australia bowling coach David Saker said the contest was interestingly poised after a hard-fought day.
"It's great test-match cricket," Saker, who was England's bowling coach from 2010 to 2015, told reporters.
"We really put them under a lot of pressure. They absorbed it, especially Pujara who played a fantastic innings."
"We're still ahead of the game but they are getting closer every over... we'll be coming out pretty strong tomorrow."
Resuming the day on 120 for one, Pujara and Murali Vijay raised their sixth century partnership of the season to lead India's strong reply.
Take a bow, ChePu!4th century in this home season, 11th Test ton. Another marvellous innings by @cheteshwar1.#INDvAUS pic.twitter.com/TP2nZfl00E— ScoopWhoop News (@scoopwhoopnews) March 18, 2017
Playing his 50th test, Vijay, then on 58, survived a bat-pad catch when the inside edge went undetected and Australia could not challenge the not-out decision having exhausted their reviews.
The opener did not make the most of the reprieve, however. In the final over before lunch, Vijay jumped out to a Steve O'Keefe delivery only to be stumped for 82, which included 10 boundaries and a six.
Virat Kohli walked out after lunch to thunderous applause, having stayed away from the field since injuring his shoulder on Thursday, and there was silence as he departed after facing 23 balls that yielded six runs.
Armed with the second new ball, Cummins induced Kohli into a loose drive and Australia skipper Steve Smith took a sharp catch at second slip.
Ajinkya Rahane belied his reputation as a watchful batsman with a ramp shot more suited to limited-overs cricket, feathering a Cummins delivery to wicketkeeper Matthew Wade.
Karun Nair lost his off-stump to Josh Hazlewood and Ravichandran Ashwin could only glove a Cummins snorter to Wade in the final session.
Vijay dismissed suggestions that India had lost momentum towards the end.
"Not really, I think the game is evenly poised," the opener told reporters. "If we can get closer to the target and maybe if possible get a lead from there, it would be a good game in hand."
The four-test series is level at 1-1 with Dharamsala hosting the final match from March 25.