India captain Virat Kohli hailed Rohit Sharma as the "best one-day player around" after the opener's fourth century of the tournament saw the side book their place in the semi-finals of the World Cup with a 28-run win over Bangladesh at Edgbaston on Tuesday.
Sharma's attacking 104 laid the foundation of India's 314 for nine after Kohli elected to bat first in India's penultimate match of the league phase.
Yet for the second match in a row Sharma -- as happened during India's 31-run defeat by England at Edgbaston on Sunday -- was dropped in single figures before making a hundred.
Video is Not allowed in your region
Bangladesh vs India highlights
India's bowlers then combined to dismiss Bangladesh for 286 with two overs to spare after star batsman Shakib Al Hasan top-scored with a valiant 66.
Jasprit Bumrah took four wickets and fellow paceman Hardik Pandya three, including the prize scalp of Shakib.
'Tournament of his life'
Kohli may be widely regarded as the best current batsman in all forms of the game but the skipper was unstinting in his praise of Sharma.
"In my opinion he is the best one-day player around, he is having the tournament of his life and when he plays well everyone has so much confidence," said Kohli.
"When he plays well we know we are heading for a big score. He gives everyone confidence to go out and bat."
Kohli added: "Bangladesh played some really good
Defeat ended Bangladesh's slim hopes of a place in the last four after they had impressed during wins over South Africa and the West Indies.
"It was a good effort --- Mustafizur bowled well," said Bangladesh captain Mashrafe Mortaza. "But if one of the batsmen could have got to 80 or 90, it might have been different. We were asking too much in the end."
The day belonged to Sharma, whose attacking 92-ball innings, featuring seven fours and five sixes, was cheered on by another largely pro-India crowd in Birmingham.
Sharma and opening partner KL Rahul put on 180 -- the highest stand for the first wicket in the tournament -- to get India off to a flying start.
But Sharma should have been out for nine only for Tamim Iqbal to drop a simple catch at deep midwicket following a mistimed pull off paceman Mustafizur Rahman.
Sharma was finally was caught at extra cover by Liton Das off the bowling of Soumya Sarkar and Rahul, who filled an opener's slot following an injury to Shikhar Dhawan, was caught behind off Rubel Hossain for 77.
Mustafizur took five wickets, including that of star batsman Kohli for 26, to check India's surge..
Rishabh Pant once again showed his worth at the number four position with a brisk 48, using the short boundary at one side of Edgbaston to his advantage.
MS Dhoni, who received flak for his slow innings in India's defeat by England on Sunday -- their only loss so far this tournament -- chipped in with a 33-ball 35.
Paceman Mohammed Shami struck early in Bangladesh's reply when Tamim, who made 22, chopped the ball onto his stumps.
Shakib hit his sixth fifty-plus score that includes two hundreds to keep Bangladesh in hunt.
But Pandya's second spell saw the all-rounder account for Liton and Shakib to leave Bangladesh struggling at 179-6 in the 34th over.
Shakib played well for his 46th ODI fifty but was undone by a slower ball and caught at extra cover.
Mohammad Saifuddin made an unbeaten 51 only to run out of partners as Bumrah ended the match with wickets in successive deliveries.
Bangladesh face Pakistan in their last group match at Lord's on Friday.
India meet Sri Lanka on the final day of the round-robin phase on Saturday.