Shakib hit 93 and Towhid added 92 to guide Bangladesh to their highest-ever ODI score of 338-8 after the tourists put them in to bat. Ebadot Hossain led the reply with 4-42 and left-arm spinner Nasum Ahmed chipped in with 3-42 to bowl out Ireland for 155 runs just shy of 31 overs.
George Dockrell was the last man dismissed after making 45, Ireland's highest total. Stephen Doheny and Paul Stirling put on 60 runs in the opening stand but once Shakib dismissed Doheny for 34 Ireland collapsed to 5-76, never to recover.
"We were not too disappointed at the halfway stage as the wicket was good and the best time was to bat under lights," Ireland captain Andrew Balbirnie said. "But we kept losing wickets and didn't get any partnerships."
Graham Hume finished with a career-best 4-60 but the hosts shrugged off early pressure from the Irish bowling attack. Shakib and Towhid added 135 for the fourth wicket to lift Bangladesh from 81-3 after Tamim (3), Litton Das (26) and Najmul Hossain (25) all fell cheaply.
Shakib became the second Bangladeshi cricketer to reach 7,000 ODI runs after Tamim. Shakib is now also just the third cricketer to surpass that milestone in ODI runs and 300 ODI wickets after Sri Lanka's Sanath Jayasuriya and Pakistan's Shahid Afridi.
He shifted gears after reaching his third successive ODI fifty and hitting Harry Tector for five fours in an over. He fell seven runs short of his 10th ODI hundred after chasing a wide yorker from Hume to get the bottom edge.
Towhid played the best debut innings for Bangladesh in ODIs, adding 80 runs for the fifth wicket with Mushfiqur Rahim, who struck 44 off 26 balls. Hume removed both batsmen in the same over before taking the wicket of Taskin Ahmed but the tourists were unable to stop the flow of runs.
The remaining ODIs will be played in Sylhet on Monday and Thursday. Ireland, who will also play three Twenty20 Internationals and a Test during their tour, last visited Bangladesh for a bilateral series in 2008.