Joy's career-best 171 and Shanto's 100 guided Bangladesh to 8-587 (declared) after Ireland were bowled out for 286 in their first innings.
Needing 301 runs to force Bangladesh to bat a second time, Ireland were dismissed for 254 in the second session of Day 4 in Sylhet on Friday.
Electing to bat first in the opener of a two-Test series, Ireland got half-centuries from Paul Stirling and Cade Carmichael, who added 96 runs after the departure of captain Andy Balbirnie for a duck.
Stirling survived twice before being dismissed by 60 runs and Carmichael added 59.
Offspinner Mehidy Hasan Miraz, who claimed 3-50, ripped through the Irish middle order before Curtis Campher and Lorcan Tucker shared 53 runs to steady the innings.
Debutant Hasan Murad removed both of them to finish with 2-47.
Opener Shadman Islam (80) and No.3 Minimul Haque (82) supplied great support to Joy and Shanto in Bangladesh's imposing innings.
Opener Stirling contributed a further 43 runs in Ireland's second dig while No.6 Andy McBrine top-scored with 52.
Murad (4-60) and Taijul Islam (3-84) led the home team's bowling as they eased to a comfortable win.
The second Test begins next Wednesday in Dhaka.