|Gautam Gambhir (left) and Virender Sehwag sprint between the wickets [AFP]
India rapidly reached 122 for one in their second innings before bad light stopped play on the third day of the first Test against Bangladesh in Chittagong.
The tourists lead by 123 runs after taking a slender one-run advantage in the first innings.
Virender Sehwag was the man out on Tuesday, caught by Raqibul Hassan off Shakib Al Hasan for 45.
Gautam Gambhir was 47 not out at the close with nightwatchman Amit Mishra on 24.
Earlier, Mishra grabbed three quick wickets before and after tea to bowl out Bangladesh for 242.
Bangladesh had looked set to overhaul India's total of 243 when Mahmudullah (69) and Mushfiqur Rahim (44) added 108 runs for the seventh wicket.
But just as Bangladesh had suffered a top-order collapse when they tottered on 98 for six before lunch, they surrendered their last four wickets for just 36 runs.
Mahmudullah, who chalked up his maiden Test fifty, was dismissed after edging Shanthakumaran Sreesanth and two balls later Mishra ended Bangladesh's charge by forcing debutant Shafiul Islam to loft the ball to Yuvraj Singh.
"It was a good bowling effort, I thought. Basically they are just playing shots so it was important we stuck to our areas and were patient," paceman Zaheer Khan said.
"Today it was good sunshine and definitely the wicket improved as the play went on. We are happy."
With Bangladesh resuming on 59 for three, India grabbed three wickets in the morning after fog delayed the start for a third consecutive day.
Zaheer, Ishant Sharma and Sreesanth claimed a wicket each.
Mohammad Ashraful was the first to go, for two, edging Sharma to first slip where Rahul Dravid took the catch.
Shakib started with positive intent, striking four boundaries in quick succession before he gave Zaheer his third wicket when Sehwag held a fine catch at gully to dismiss the Bangladesh skipper for 17.
Sreesanth forced Raqibul to give a catch to wicketkeeper Dinesh Karthik after the middle-order batsman reached 17.
Sachin Tendulkar dominated India's first innings with 105 not out, his 44th Test century.
Shakib (5-62) and Shahadat Hossain (5-71) shared all 10 wickets in the Indian innings.
Mahmudullah said Bangladesh could still give India a run for their money.
"There is not as much turn in the wicket as there was on the first day. On this wicket 270 to 280 and even 300 is chaseable," he said.