Ravichandran Ashwin hit an unbeaten century as India recovered from a slow start on day one of their first Test with Bangladesh.
Ashwin made 102, while Ravindra Jadeja ended 86 not out as the hosts finished the day at 339-6 in Chennai.
It looked set to be a difficult day for India, who were 36-3 inside the opening hour with Virat Kohli (six), Rohit Sharma (six) and Shubman Gil (0) all dismissed.
Rishabh Pant hit 39 while Yashasvi Jaiswal had a knock of 56 to steady the hosts at 144-6, before Ashwin and Jadeja took centre-stage.
Together, they put on 195 from 227 balls in an unbroken seventh-wicket stand to swing the momentum firmly in India's favour, with Ashwin reaching hs ton in just 108 balls.
"On a surface like this with a bit of spice, if you're going after the ball, you might as well go after it really hard," he said.
"It's the old Chennai surface with a bit of bounce and carry, and the red soil pitch allows you to play a few shots.
"If you're willing to just get in line and can give the ball a little bit of tonk, it really helps."
Data Debrief: Ton up for Ashwin as hosts break Mahmud's resolve
It looked like Hasan Mahmud would be the star on day one, with the Bangladesh seamer taking an impressive 4-58.
But Ashwin had other ideas on his home ground, with 10 fours and two sixes on the way to notching his sixth Test century, and second in as many Tests in Chennai.
Jadeja matched him with 10 fours and two sixes of his own, and is just 14 runs off claiming his own ton when play resumes on Friday.