Virat Kohli's unbeaten century sealed India's fourth win from four Cricket World Cup matches as the hosts defeated Bangladesh by seven wickets in Pune on Thursday.
Star batsman Kohli reached his century and ended the match in style with a six against spinner Nasum Ahmed when he needed three runs to complete his century and India required two more runs to reach a target of 257.
They got there with more than eight overs to spare, finishing on 261-3.
Kohli faced 97 balls, including six fours and four sixes, with this century his third score in excess of fifty in four innings following contributions of 85 and 55 not out in recent pool wins over Australia and Afghanistan.
But for Bangladesh, a third defeat in four matches left them with an uphill struggle to qualify for the semi-finals.
The stage was set for Kohli by an opening partnership of 88 between India skipper Rohit Sharma (48) and Shubman Gill (53).
Rohit signalled India's intentions with a second-ball cover-driven four off Shoriful Islam as Bangladesh bowling coach Allan Donald, the former South Africa spearhead, looking on from the boundary edge.
Rohit, fresh from scores of 131 and 86 against Afghanistan and Pakistan respectively, hooked Hasan Mahmud for a huge six only to hole out when trying to repeat the shot next ball.
Kohli, however, was soon into his stride with a four -- off a free hit -- and a sublime straight six from successive Mahmud deliveries.
Gill's exit, as he just failed to clear the rope for a third time, made little difference to the run-spree.
Earlier, spinners Kuldeep Yadav and Ravindra Jadeja sparked a top-order collapse against a Bangladesh side who had won three of their four previous ODIs against India.
The Tigers were held to 256-8, having been well-placed at 93 without loss, after stand-in Tigers skipper Najmul Hossain Shanto won the toss on a good batting pitch.
Jadeja took a miserly 2-38 from his 10 overs and Yadav 1-47.
Tanzid Hasan, whose 51 was the left-hander's maiden ODI fifty, and Liton Das (66) shared a fine opening stand while facing Jasprit Bumrah and Mohammed Siraj only for Bangladesh to slump to 137-4.
The 22-year-old Tanzid, whose highest score in eight previous ODIs was 16, completed a 41-ball fifty before he was lbw to left-arm wrist-spinner Yadav.
Liton was still there but he carelessly lofted Jadeja to long-off.
India were a bowler down after Hardik Pandya managed just three balls in the ninth over before limping off with ankle damage.
Kohli, bowling in an ODI for the first time in six years, completed Pandya's over.
Mushfiqur Rahim's 38 and fellow veteran Mahmudullah's 46 bolstered Bangladesh's total.
But with left-arm spinner and regular skipper Shakib Al Hasan sidelined following the thigh injury suffered during Friday's eight-wicket loss to New Zealand in Chennai, it never looked enough.
India's quest for a third World Cup title continues against New Zealand in Dharamsala on Sunday, with Bangladesh facing South Africa in Mumbai on Tuesday.