Rishabh Pant and Shreyas Iyer helped India recover from an early trouble before another mini-collapse in the lower middle-order in the second Test against Bangladesh at Sher-e-Bangla National Cricket Stadium. But their counter-attacking partnership of 159 was enough for India to take a crucial 87-run lead.
Bangladesh openers safely negotiated six overs late in the day and finished at seven for no loss.
Both Pant and Iyer unleashed some aggressive shots to make Bangladesh bowlers disarray who appeared to be on top after fast bowler Taskin Ahmed had Virat Kohli caught by wicket-keeper Nurul Hasan Sohan for 24.
With the side at 94-4 and potentially at danger, Pant and Iyer came up with a counterattack policy which worked well for them.
But it also gave Bangladesh an ample opportunity to dismiss both of the batters, however simply, they couldn't hold onto the chances.
Pant survived twice - on 11 when Liton Das failed to grab a catch at slip off-spinner Mehidy Hasan Miraz and later on 59 against the same bowler. This time Mushfiqur Rahim misjudged at long-on and couldn't take a one-handed catch, rather it went for big six.
Iyer got a life on 15, when Mehidy shelled a catch at gully off Taskin Ahmed delivery.
Pant hit seven fours and five sixes in his knock of 93, for which he played 104 balls and most of the six came against left-arm spinner Taijul Islam, the most successful bowler for Bangladesh. It was the sixth time Pant got out in the nineties.
Iyer (87 off 105) was dismissed by Shakib who got four wickets just like Taijul. India lost their last six wickets for 61 runs.
Taijul successfully reviewed a leg-before decision to remove captain KL Rahul for 10 after India resumed the day two at 19 for loss.
Shubman Gill (20) was also trapped leg-before off Taijul as he tried to sweep a delivery that didn't turn as much as he expected, leaving India at 38-2.
Cheteshwar Pujara and Kohli appeared set to rebuild the innings, dominating the spinners astutely but Mominul Haque took a sharp catch at short leg to get rid of the former on 24 off Taijul bowling.
But Pant hit Taijul a six and then took doubles to raise his 11th half-century off just 49 balls.
Iyer later brought up his fifth fifty off 60 balls in his just seventh Test, pulling pacer Khaled Ahmed for a single through fine leg.
Shakib returned four for 79 while Taijul recorded almost identical figures - four for 74.