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.
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.
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 with two games to avoid finishing the tournament without a single point.
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. Just 10 runs came from the next five overs and 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 was promoted ahead of Soumya Sarkar to open along with Tamim for Bangladesh, with the pair managing a brisk 23 from the first four overs. But Liton fell for 16 in the next over 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 even further with some aggressive hitting that maintained his fine World Cup 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.