Lokesh Rahul recorded his maiden Test century in the afternoon session as India reached tea on 234-2, 338 runs behind the hosts in Sydney.
India started the session on 122-2 after only losing Rohit Sharma in the opening session of the day, and the conditions still favoured the batting side as the tourists chipped away at Australia's first-innings total of 572-7d.
Despite Australia's struggles to get any help from the pitch, Rahul (106*) batted sensibly alongside Indian skipper Virat Kohli (67*), whose fine form on tour continued with another half-century.
Kohli should have been dismissed shortly after passing 50, but Steven Smith was unable to hang on at second slip when Mitchell Starc finally caught the edge.
It appeared that Rahul would be forced to wait until the final session to reach three figures before a boundary in the final over allowed him to forget about a disappointing debut in Melbourne, where he scored just four runs in two innings.