Mehidy Hasan Miraz's maiden ODI hundred in at number eight and later a clinical bowling performance helped Bangladesh win the thrilling second ODI in Mirpur and take the three-match series 2-0.
It went right down to the wire as India needed six to win off the final ball but Mustafizur Rahman fired in a yorker to deny Rohit Sharma and give Bangladesh a five-run win.
Miraz's knock of 100* off 83 balls was studded with eight fours and four sixes. Later, he got two wickets including the one of India's top scorer Shreyas Iyer. It was Miraz's second consecutive player-of-the-match performance.
Miraz became only the second batter in ODI history to score a hundred at number eight or lower after Ireland's Simi Singh.
Miraz and Mahmudullah steered Bangladesh's recovery after the side was left reeling at 69/6 in 19 overs. The duo stitched the highest-ever 7th wicket stand (148) to take Bangladesh to a fighting total of 271/7. It was also their highest partnership for any wicket against India.
Washington Sundar put the home side under immense pressure with quick wickets of Shakib Al Hasan, Mushfiqur Rahim, and Afif Hossain; however, Mehidy continued on his good form from the previous game while Mahmudullah also played the anchor role effectively.
Miraz went about run-a-ball for the most part of the innings while Mahmudullah was happy to bide his time. The latter upped the ante towards the end before Umran Malik got him out for 77 off 96 balls. Mahmudullah struck seven fours.
Miraz played the spinners very well and was particularly strong behind the wicket.
Nasum Ahmed came out with attacking intent and struck some lusty blows in his enterprising knock of 18 off 11. Miraz read Shardul Thakur's slower balls well and hit two sixes in the final over before taking a single in the last ball to complete the ton.
Earlier, Mohammed Siraj took two wickets in the innings while Umran Malik dismissed Najmul Hossain Shanto for 21.
India endured a poor start with Virat Kohli, Shikhar Dhawan, and Washington Sundar failing to make a mark.
Stand-in skipper KL Rahul was also dismissed by Shakib Al Hasan; however, Axar and Iyer forged a partnership and remained key for the side's chances in the game before Mehidy Hasan Miraz got the latter dismissed for 82.
Kohli opened the innings for India in Rohit Sharma's absence due to injury, but couldn't make a mark as he was dismissed on 5 before Shikhar Dhawan, too, departed cheaply (8).
Washington Sundar, who was promoted at fourth position in the batting order was also dismissed in the 10th over as he scored 11. While Ebadot Hossain struck the opening wicket of Kohli, Mustafizur Rahman dismissed Dhawan while all-rounder Shakib Al Hasan got the crucial wicket of Sundar.
Onus was on Axar to take India closer to the total but the bowling change paid off as Ebadot got the better of him after his fifty.
Rohit Sharma came out to bat at number nine with an injured finger and almost turned out to be the hero for India. India needed 40 off the last two overs and he brought it down to 12 off two.
Rohit hit Mustafizur down the ground for a six off the penultimate ball of the match but failed to repeat it the next ball.