Bangladesh won the third and final game of the three-match one-day international series by 50 runs on Monday in port city, preventing England from sweeping the series.
The home team tied the visitors to 196 runs in 43.1 overs as they were chasing the target of 246 runs.
Though Bangladesh lost an ODI home series after seven years, the Tigers moved themselves from sixth to fourth place in the Super League standings by defeating England in the last game of the ODI series.
Shakib earned 75 runs as a batter and picked up four wickets in the slow and low bounce wicket of Zahur Ahmed Chowdhury Stadium in Chattogram.
He became the first as a Bangladeshi to pick up 300 wickets in the ODIs. Ebadat Hossain and Taijul Islam took two wickets each.
ESPNCricinfo stated that "Allround Shakib seals win for Bangladesh".
James Vince top-scored for England with 38. Jofra Archer topped the English bowling attack with three wickets.