Bangladesh left-arm seamer Mustafizur Rahman haunted India again with career-best figures of six for 43 to lead his team to a maiden ODI series victory over the twice world champions.
After their captain Mahendra Singh Dhoni opted to bat first, India were shot out for 200 in 45 overs in a rain-disrupted second ODI.
Set a revised 200-run victory target in 47 overs, veteran Shakib Al Hasan (51*) anchored Bangladesh's chase and the hosts romped home by six wickets in 38 overs to clinch an unassailable 2-0 lead in the three-match series and qualify for the 2017 Champions Trophy.
"It's a great moment for us and now we'll be playing Champions Trophy which is a great achievement," Bangladesh captain Mashrafe Mortaza said at the presentation ceremony.
Bangladesh had underlined their recent 50-over progress by beating England in the World Cup before whitewashing Pakistan 3-0 in a home series in April.
They will hope to inflict a similar humiliation on India when the teams meet in the final match on Wednesday.
Rookie Rahman, 19, was instrumental in Bangladesh's 79-run win on Thursday and his off-cutter and subtle changes in pace made him only the second bowler, after Zimbabwe's Brian Vitori, to claim five wickets or more in each of his first two ODIs.
India lost wickets at regular intervals, only Shikhar Dhawan (53), Dhoni (47) and Suresh Raina (34) managing to withstand Bangladesh's relentless hostility.
In reply, India failed to take regular wickets as the hosts were allowed to build regular partnerships en route their landmark series-win.
"A few of us got starts but they had to make it big, that's when it really counts," Dhoni said.
"They were bowling really well. Even when they didn't get wickets, they kept it really tight. Once they got two-three wickets in a row, they maintained pressure on us."
India 200 all out in 45 overs (Dhawan 53, Rahman 6-43)
Bangladesh 200-4 in 38 overs (Shakib 51*, Ashwin 1-32)
Source: Al Jazeera and agencies