Set a target of 339 runs, a collapse-prone Bangladesh were all out for 123 in 29.3 overs in their second innings in the second session of the third day, without offering much of a challenge.
Dananjaya finished with 5-24 to take his match haul to eight wickets while experienced Rangana Herath claimed 4-49.
Sri Lanka bowled out Bangladesh for 110 runs in the first innings to take a 112-run lead after they made 222 runs in their opening innings.
The visitors’ victory was never in doubt after they posted 226 runs in their second innings, resuming the third day’s play on 200-8.
Roshen Silva remained unbeaten on 70, adding 48 runs with fellow overnight batsman Suranga Lakmal for the ninth wicket to extend their lead on a difficult pitch at the Sher-e-Bangla National Stadium.
Left-arm spinner Taijul Islam bowled Lakmal for 21 to end the partnership before he trapped Herath leg-before off the next ball to wrap up the Sri Lanka innings.
Taijul finished with 4-76 taking his tally to eight wickets in the match but Bangladesh were always in the back foot once they started their second innings on a massively turning wicket.
Sri Lanka began their victory push as Dilruwan Perera removed opener Tamim Iqbal for two in just the second over of the innings.
Herath got rid of Imrul Kayes before the lunch break as wicketkeeper Niroshan Dickwella took a catch, just a ball after he hit the left-arm spinner for a six.
Herath added Mominul Haque (33) and Mushfiqur Rahim (25) to after the lunch break before Dananjaya stepped on to the scene and did the rest.
Silva, who also scored 56 runs in the first innings, was man of the match.
The first Test ended in a draw in Chittagong.
The two teams will now play two Twenty20 internationals with the first match in Dhaka on February 15.
Know more about Sport360 Application