Shakib Al Hasan spearheaded an inspired Bangladesh bowling attack with five wickets to knock over India for 186 in the opening one-day international in Dhaka on Sunday.

KL Rahul managed to keep the visitors in the game, scoring 73 off 70 balls, while his teammates fell at regular intervals at the other end after Bangladesh elected to field to start the three-match series.

Allrounder Shakib, who bowls left-arm spin, claimed his fourth five-wicket ODI haul with an impressive 5-36 that included the key wickets of returning skipper Rohit Sharma (27) and Virat Kohli (nine).

Pace bowler Ebadot Hossain played the main supporting role to take four wickets and wrap up the Indian innings in 41.2 overs.

It was Shakib's double strike that took the wind out of India's batting.

He first bowled Rohit on the second ball of his opening over, before getting Kohli to hit into extra cover two balls later where captain Liton Das took a stunning one-handed catch.

Shreyas Iyer and Rahul, who comes into the side as wicketkeeper-batsman after regular glovesman Rishabh Pant was ruled out of the series with an injury, attempted to rebuild with a 43-run stand.

Ebadot broke through their defences, getting Iyer caught behind for 24 as India slipped to 92-4 in 20 overs.

Rahul stood firm and amassed another 60 runs with Washington Sundar (19), taking on the Bangladesh bowlers and bringing up his fifty with a boundary.

But Shakib ended that stand and any further resistance, getting Sundar caught going for a reverse sweep and then striking twice more to flatten the Indian batting.

Rahul, who hit five fours and four sixes, dragged the innings into the 40th over before falling to Ebadot with a mistimed pull shot that was lapped up by Anamul Haque in the deep.