Shakib broke his finger while batting in a match overshadowed by Sri Lanka's Angelo Mathews becoming the first player in the 146-year history of international cricket to be timed out following an appeal by the Bangladesh skipper which he refused to withdraw.
"Shakib was struck on his left index finger early in his innings but continued to bat with supportive taping and painkillers," said Bangladesh team physio Bayjedul Islam Khan.
"He underwent an emergency X-ray in Delhi after the game which confirmed the fracture. Recovery is estimated at three to four weeks. He will leave for Bangladesh today to begin his rehab.”
The end is near for Bangladesh
Bangladesh, who are already out of contention for a semi-final place, conclude their group stage campaign against Australia in Pune on Saturday.
Shakib made 82 in Bangladesh's innings as his team won by three wickets.
He was later branded "disgraceful" by an angry Mathews who accused him of "stooping low" by making the appeal for his dismissal.
Mathews had exceeded the two-minute time limit to take strike when he arrived at the crease as he attempted to secure the strapping on his helmet.