A whirlwind 60 off 27 balls from Liton Das wasn't enough for Bangladesh to get over the line against India in a rain-hit match at the Adelaide, which the Tigers lost by five runs in the Duckworth and Lewis method.
Virat Kohli's unbeaten 64 off 44 balls and KL Rahul's 50 off 32 balls powered India to 184-6.
In reply, Bangladesh got off to a flying start thanks to Liton's fiery innings, reaching 66-0 in seven overs before rain stopped play.
Had the match not resumed, Bangladesh would've been declared victorious, as they were comfortably ahead in the DLS.
But play resumed after almost an hour-long interruption, to some protest from Shakib, who felt the outfield was still too wet.
Bangladesh paid the price for the wet outfield in the second ball after the play resumed, as Liton slipped while trying to take a second run and it cost him his wicket.
Nurul Hasan's 25 off 14 balls and a 12 off seven from Taskin took Bangladesh agonisingly close to the target. But in the end, they fell short.
Bangladesh won the toss and opted to field first against India in their penultimate Super 12 match in the ICC T20 World Cup 2022 in Adelaide on Wednesday.
Bangladesh made one change, dropping opener Soumya Sarkar in favour of pacer Shoriful Islam.
This is the second time Bangladesh are playing at the Adelaide Oval. Their first match at the ground was against England during the ICC World Cup 2015, a match they famously won.
Both teams have won two and lost one in the tournament so far and need a win to keep their semifinal aspirations in their own hands.
Bangladesh: Najmul Hossain Shanto, Liton Das, Shakib Al Hasan (c), Afif Hossain, Nurul Hasan (wk), Mosaddek Hossain, Yasir Ali, Taskin Ahmed, Mustafizur Rahman, Hasan Mahmud, Shoriful Islam
India: KL Rahul, Rohit Sharma (c), Virat Kohli, Suryakumar Yadav, Hardik Pandya, Axar Patel, Dinesh Karthik (wk), Ravichandran Ashwin, Mohammed Shami, Bhuvneshwar Kumar, Arshdeep Singh
Taskin Ahmed couldn't take a wicket in his first over, like he did in Bangladesh's previous three matches in this world Cup, but bowled a tight over first up for Bangladesh, conceding only one.
Taskin tested the outside edge of KL Rahul multiple times, but couldn't get the nick.
Shoriful Islam's first over cost Bangladesh nine runs.
Shoriful bowled a no ball, but didn't concede any runs from the free-hit, as Rahul couldn't connect a well-directed yorker. But the Indian opener had the last laugh, when he hit the left-arm pacer for a huge six on the leg-side in the fifth ball.
Hasan Mahmud dropped a sitter at the boundary, dropping India captain Rohti Sharma for one.
After three dot balls, Rohit pulled a short ball from Taskin which went straight to Hasan at the square leg boundary. But Hasan couldn't complete the catch.
Taskin conceded just one run from the over as India reached 11-0 after three overs.
Hasan Mahmud made up for his dropped catch by getting the wicket of Rohit Sharma in the fourth over.
Rohit, who made two off eight balls, tried to play an upper cut but couldn't get the ball over the 30-yeard circle, getting caught by Yasir Ali.
Virat Kohli replaced Rohit at the middle.
Rahul took the attack to Hasan the same over India lost Rohit, hitting a four behind the wicketkeeper and a marvelous six through the covers in consecutive deliveries.
India reached 22-1 after four overs.
Kohli hit consecutive fours off Taskin to make his intentions clear.
Kohli hit a four through the covers in the first ball. He then slashed at a wide delivery, which evaded the grasp of Yasir at first slip.
Taskin conceded eight runs from the over as India reached 30-1 after five overs.
Mustafizur Rahman conceded seven runs in his first over, as India reached 37-1 at the end of the powerplay.
Bangladesh pacers did well in the powerplay, with Taskin being the best of the bowlers, conceding just 10 runs from his three overs. But the Tigers would've liked to take a few more wickets.
Bangladesh captain Shakib Al Hasan used up Taskin's fourth and final over immediately after the powerplay in hopes of getting a wicket.
The ploy didn't work, as the Indian batters saw off Taskin, scoring five runs from the over but not giving Bangladesh any chance of taking a wicket.
Taskin finishes with 15-0 in his four overs.
India reached the 50-run mark inside eight overs with a boundary from Rahul, who has moved on to 31 off 26 balls, off Shakib.
Shakib conceded 10 runs from his first over as India reached 52-1 after eight overs.
Shoriful conceded 24 runs in a disastrous ninth over, where he conceded 14 runs from the fourth delivery.
Rahul hit a dismissive six over long-on off Shoriful of a no-ball. Shoriful bowled a wide in the free-hit, making the next ball another free-hit, which the right-hander dispatched for another six.
Skipper Shakib got Bangladesh a much-needed breakthrough, dismissing Rahul right after he completed his half-century.
Rahul completed his fifty with a two in the previous delivery. He then tried to play a sweep shot, which balloned up in the air and Mustafiz took an easy catch.
New-batter Suryakumar Yadav hit a four from the last ball of the over, as India reached 86-2 at the halfway point of the innings.
Bangladesh dropped their second catch of the match, this time Mustafiz dropping a difficult chance from Yadav.
Yadav, who was on 14, top-edged the ball while going for a slog, which went behind the keeper. Mustafiz ran back and got his hands to it, but couldn't hold onto it.
Yadav was causing problems for Bangladesh, hitting four fours in just 16 deliveries. But Shakib in his final over got rid of Bangladesh's 'Yadav' problem but rattling his stumps.
Yadav departs for 30 off 16 balls as India reached 119-3 after 14 overs.
Shakib finished with 2-33 in his four overs.
Kohli struck two fours off Mustafiz in the 15th over to reach 40 off 31 balls, as India reached 130-3 with five overs to go.
Hasan got his second wicket of the match, removing the dangerous Hardik Pandya for five off six balls.
Pandya tried to play the ball over the point fielder's head, but didn't get the elevation he was looking for as Yasir took a simple catch to reduce India to 130-4.
Hasan conceded a no-ball after bowling two over shoulder height bouncers in the over. But the free-hit cost Bangladesh only one run. Still, a four from Kohli made it a good over for India.
Kohli completed his half-century in the 17th over with a two off Shoriful in the fifth ball.
Dinesh Karthik lost his wicket due to a miscommunication with Kohli, getting run out at the non-striker's end for seven.
India reach 150-5 with three overs to go.
Axar Patel hit a four off Mustafiz's first ball of the over, but the pacer came back well, conceding only seven runs off the over.
Mustafiz completes his four overs with 33-2.
Hasan got his third wicket in the match, dismissing Axar for seven, to reduce India to 157-6 with 11 balls to go in the innings.
Kohli hit a four and a six from the last two balls of the 19th over from Hasan, to take India to 170-6 with six balls to go.
Ravichandran Ashwin hit a four and a six off Shoriful in the final over, which cost Bangladesh 14 runs, as India finished on a daunting 184-6.
Virat Kohli's unbeaten 64 off 44 balls, KL Rahul's 50 off 32 balls and a quickfire 30 off 16 balls from Surykumar Yadav guided India to 184-6 in their 20 overs.
Bangladesh would've hoped to restrict India to a smaller total after keeping them to 37-1 in the powerplay.
But the momentum of the innings shifted in the ninth over from Shoriful, which cost 24 runs.
For Bangladesh, Taskin Ahmed was the best bowler despite going wicketless.
Hasan Mahmud took 3-47 while skipper Shakib claimed 2-33.
Shoriful, who is playing his first match of the tournament, leaked 57 runs from his four overs.
Liton Das came out to open the innings with Najmul Hossain Shanto, in place of Soumya Sarkar, who has been dropped in favour of pacer Shoriful Islam.
Both openers got off the mark in the first over from Bhuvneshwar Kumar, as Bangladesh reached 2-0 after over no.1.
Liton hit three classy boundaries off Arshdeep Singh to put Bangladesh's chase on track in the second over.
In between the fours, Liton survived a close call. Liton edged a ball to the wicketkeeper Dinesh Karthik. Karthik thought he had caught the ball cleanly, but replays showed that the ball hit the ground before reaching his gloves.
Liton hit a six and a couple of fours in three consecutive deliveries against Bhuvneshwar, before getting dropped by Karthik once again in an eventful third over.
The over gave Bangladesh 16 runs as they reached 30-0 after three overs.
Liton is going great guns, batting on 33 off 14 balls, while Shanto has scored just two off 10 balls as Bangladesh end the fourth over on 35-0.
Liton hit six off Bhuvneshwar with a scoop shot to reach 41 off just 19 balls as Bangladesh reached 44-0 after five overs.
Liton hit a four and a six off Shami in the sixth over, to race to his half-century off just 21 balls.
Liton hit six fours and three sixes in his whirlwind innings that is giving Bangladesh hope.
Liton's storm at the Adelaide helped Bangladesh end the first six overs on 60-0.
Liton is not out on 56 off 24 balls while Shanto is struggling at the other end on four off 12 balls.
Rain stopped play after the seventh over, with Bangladesh 17 runs ahead in the Duckworth and Lewis method.
Bangladesh reached 66-0 after seven overs, with Liton batting on 59 off 26 balls and Shanto batting on seven off 16 balls.
The groundsmen began taking the covers off at the Adelaide Oval.
Prothom Alo correspondent at the Adelaide Oval, Tarek Mahmud, said the rain has stopped but the central wicket is still under covers. The groundsmen are working to dry the rest of the field.
Bangladesh were set to resume their innings after a lengthy rain interruption. The revised target for the Tigers was 151 in 16 overs.
Bangladesh needed 85 runs off nine overs with 10 wickets in hand to win the match.
Shakib complained to the umpire before play resumed, saying the field is still wet. But umpires didn't heed to his pleads.
In the first two balls after resumption, Liton slipped once and hurt his wrist while going for a single. In the following ball, he slipped while going for a two, and got run out.
Liton is dismissed on 60 off 27 balls, Bangladesh reach 74-1 after eight overs.
Shanto hit a six off Pandya with a mishit, as Bangladesh took 10 runs from the ninth over to take the score to 84-1.
Bangladesh need 67 runs from 42 balls to win.
After Liton's dismissal, Bangladesh needed Shanto to take charge. But that wasn't to be as Shanto lost his wicket in the 10th over to pacer Shami.
Shanto tried to slog the ball to the leg side but perfectly found Yadav at long-on.
After over no.10, Bangladesh are 88-2 and need 63 runs off six overs.
After two dot balls, Shakib hit Ashwin for a four down the ground and then hit another four with a lofted cover drive.
Bangladesh nearly lost a wicket, when Afif's attempt to hit reverse sweep misfired, the ball ballooned up in the air, but Rohit couldn't reach their in time.
Bangladesh need 52 off 30 balls.
Afif tried to hoick Arshdeep for a six over mid-wicket but ended up top-edging the ball. Yadav got under the ball and completed the catch.
Afif goes for three off five balls, Bangladesh reduced to 99-3 after 11.1 overs.
Only one run came off the first four balls of Arshdeep's over. With the required rate climbing, Shakib attempted to hit a six but couldn't time the ball properly. The ball went miles in the air, before nestling into the hands of Deepak Hooda.
Shakib made 13 off 12 balls. Bangladesh need 50 runs off four overs.
Situation worsens for Bangladesh as Yasir lost his wicket for just one off three balls, with the team needing 50 to win off 22 balls.
Mosaddek Hossain announced his arrival to the crease with a six. He ducked a bouncer from Pandya the next ball and then lost his stumps the following delivery.
Mosaddek made room for himself to play an inside out shot, but the ball took an outside edge of his bat and hit his stumps.
After 13 overs, Bangladesh are 108-6, needing 43 off 18 balls to win.
Nurul Hasan hit his first four of the tournament and took a couple of twos, to take 12 runs from Arshdeep.
Bangladesh now need 31 off the last two overs.
Taskin hit a four and a six off Pandya but Nurul missed out on the last two balls of the over, leaving Bangladesh 20 to get in the last over.
Nurul brought Bangladesh close to the target but in the end it was India who won the match by five runs in the Duckworth and Lewis method.
Nurul hit a six and a four in the final over, to bring the equation to seven off one ball.
But Nurul couldn't get underneath a fuller length delivery from Arshdeep, hitting it to long off for a single, as the Indian players celebrated a hard-fought win.