It was Bangladesh's game for the most part but India somehow managed to crawl their way back. But no one at the Sher-E-Bangla National Cricket Stadium will forget what they witnessed after that. Mehidy Hasan Miraz pulled off an absolute masterclass to snatch a win from the jaws of defeat.
On a two-paced surface, Bangladesh batters, especially the middle-order, made batting look tough. The wickets of the seasoned duo of Mahmudullah and Mushfiqur Rahim could have been the turning point in the chase, but Miraz's unbelievable 38* scripted a comeback for the ages. It went as close as it could get and eventually Bangladesh won by the barest of margins - for 1 wicket.
Shikhar Dhawan, who skippered India in their recently-concluded ODI series against New Zealand, was the first man to go. The pressure of dot balls mounted on the southpaw as he attempted a reverse-sweep off off-spinner Mehidy Hasan Miraz, only to drag it into his stumps.
Captain Rohit Sharma, back in the ODI fold, looked comfortable as he struck for fours and a maximum before a stroke of genius from Shakib Al Hasan. Rohit played for the turn in a delivery that went on with the arm and that led to his undoing as his timber was disturbed. He made 27.
Bangladesh has been a happy hunting place for Virat Kohli (9 off 15) but not in this match as he fell victim to Shakib in the same over thanks to an absolute ripper of a catch by Litton Das. He left India in trouble at 49 for three in the 11th over.
KL Rahul and Shreyas Iyer forged a partnership of 43 off 9.2 overs and tried to weather the storm. Ebadot Hossain targeted Iyer with short stuff knowing his weakness against this length. The paceman was relentless and eventually got his reward in the 20th over as Iyer top-edged a short ball and Mushfiqur Rahim pouched that easily.
Just when it looked like Rahul and Washington Sundar (19 off 43) were running away with the game, Shakib Al Hasan - who else - returned to break the 60-run partnership. Ebadot, who earlier dropped Washington on 12, redeemed himself to take the catch this time.
The next over saw Shakib and Ebadot combine again, this time in reversed roles, to get Shahbaz Ahmed out.
By that time, Shakib could do no wrong. He removed Shardul Thakur and Deepak Chahar to complete his fourth five-wicket in ODIs.
KL Rahul saw his partners come and go and amid the procession he played a magnificent knock of 73 off 70 with the help of five fours and four sixes before Ebadot ended his defiance.
India were all-out for 186 in the 42nd over as Ebadot claimed his fourth wicket. He finished with 4/47. Shakib claimed 5/36. This was the second-lowest total for India against Bangladesh.
India fast bowlers bowled superbly well with the new ball without much luck but sent back Najmul Hossain Shanto and Anamul Haque inside the first ten overs.
Deepak Chahar and Mohammed Siraj beat Litton outside off multiple times but the home captain stayed in the middle for 63 balls for his hardfought 41.
Shakib (29 off 38) looked at home and it needed a brilliant one-hander from Virat Kohli at extra cover to dismiss him. Washington Sundar accounted for the wicket. His wicket left Bangladesh in a slightly tricky position 95 for four in the 24th over.
Mahmudullah and Mushfiqur Rahim tried to steady the ship but India's sudden double strike to get the duo removed put them slightly ahead in the game. At that time, 59 off 14 overs with just four wickets in hand looked like a mountain to climb.
It was all over soon for Bangladesh as they lost Afif Hossain and Ebadot in the same over and reduced to 135 for eight.
Siraj got Hasan Mahmud out, leaving Miraz to do it all on his own. He did what no one even imagined.