Shakib overtook Mashrafe Mortaza's tally of 269 with a lovely ball that deceived the batter, and his sweep shot, to snag the top edge and end up in the hands of short fine leg.
The left-arm spinning allrounder now has 274 wickets in 213 ODIs, to go along with his 6,474 runs as well.
This is not the first time Shakib has become Bangladesh's highest ODI wicket-taker. He had reached that pinnacle in September 2016 only for Mortaza to go past him. But, with Mortaza playing his last ODI in March 2020 and looking unlikely to add to them, the record might just stay in Shakib's hands for a while.
Mortaza had taken one wicket in two matches for Asia XI in the Afro-Asia Cup in 2007. That along with his 269 strikes for Bangladesh had made him the most successful Bangladeshi bowler in ODI history. But on Friday, Shakib took that record as well, finishing with match-winning figures of 9.5-3-30-5.
Shakib returned to the Bangladesh team during this Sri Lanka series, after missing their ODIs and T20Is in New Zealand due to a thigh injury, and skipping the Tests in Sri Lanka last month due to his IPL commitment.
He is already Bangladesh's highest wicket-taker in Tests and T20Is with 210 and 92 wickets, respectively. Shakib is also currently the sixth highest wicket-taker in T20s with 362 wickets.
He is among only four allrounders to score more than 6,000 runs and take 250-plus wickets in ODIs. In T20s, he is one of only three people to have scored 5,000 runs, taken 300 wickets and picked up 50 catches.
Mohammad Isam is ESPNcricinfo's Bangladesh correspondent. @isam84