Bangladesh boosted their bid to reach the World Cup semi-finals as Shakib Al Hasan's superb all-round display inspired a 62-run win over Afghanistan on Monday.
Shakib's 51 laid the foundations for Bangladesh to score 262-7 and made him the leading run-scorer in this year's World Cup.
The 32-year-old then ripped through the Afghan batting line-up with his career-best ODI figures of 5-29 from 10 overs.
Shakib is only the second player in World Cup history to take five wickets and hit a 50 in the same match after India's Yuvraj Singh against Ireland in 2011.
"I had to work really hard with the bat. I think the five wickets gave me greater pleasure, it was important," Shakib said.
Full match highlights: Bangladesh vs Afghanistan
"I did work hard before the start of the tournament. It's the best prepared I've been and it's paying off."
Bangladesh, winners against South Africa and the West Indies earlier in the tournament, are up to fifth place in the 10-team group stage.
They sit one point behind fourth-placed England, who face Australia on Tuesday, in the race to seal a semi-final berth via a top-four finish.
Mashrafe Mortaza's side play India and Pakistan in their final two group matches.
"Shakib has been fantastic throughout the tournament. We'll try our level best against Pakistan and India. It's still wide open," Mashrafe said.
Afghanistan became the first team to be eliminated after an agonising 11-run loss against India on Saturday, when Mohammed Shami's final-over hat-trick denied them a famous upset.
Gulbadin Naib's team have lost all seven of their matches, leaving them with two games to avoid finishing the tournament without a single point.
"Obviously we played two tough games and today we missed something. Our fielding gave away 30 to 40 extra runs," Naib said.
Rahmat Shah and Gulbadin put on 49 for the first wicket, giving Afghanistan hope of a surprise win.
But Shakib's introduction brought the breakthrough as the spinner weaved his magic.
Rahmat carelessly flicked a flatter delivery to Tamim Iqbal at mid-on and departed for 24.
Hashmatullah Shahidi perished when he tried to accelerate, stumped by Mushfiqur Rahim off Mosaddek Hossain for 11.
Bangladesh had victory in their sights after Shakib took two wickets in the space of four balls.
Gulbadin was removed for 47 after driving low to Liton Das at short extra cover before Mohammad Nabi was bowled through the gate for a duck.
Shakib became the first Bangladesh player to take five wickets in the World Cup when he had Najibullah Zadran stumped.
Earlier, Shakib became the leading run scorer in this year's World Cup so far as his side posted a solid score after being put into bat.
Shakib's 51 took him to 476 runs in the tournament, while Mushfiqur top-scored with 83 from 87 balls.
Liton fell for 16 after being fooled into a miscued drive by spinner Mujeeb Ur Rahman, who finished with 3-39.
That brought Shakib to the crease and he upped the tempo with some aggressive hitting that maintained his fine form.
When Shakib, who has two centuries already in the tournament, pulled Naib to the boundary, it moved him above Australia's David Warner's 447 runs.
Tamim and Shakib put on their fourth successive fifty partnership in one-day internationals.
Shakib went on to become only the second player to hit six consecutive 40-plus scores in a World Cup.
Not long after that milestone, Shakib brought up his half-century in 66 balls -- his fifth score of 50 or more in this tournament -- to huge cheers from the Bangladesh fans who made up the majority of the crowd.
Shakib was unable to turn his solid start into another century, but he would contribute more than enough with the ball to seal the victory.