The 31-year-old Jamaican notched his maiden double century, putting on a 326-run stand for the third wicket with Darren Bravo (127) and another 177 for the fourth wicket with Shivnarine Chanderpaul, who ended the day 109 not out.
Denesh Ramdin finished not out on four.
The run-feast gave the West Indies a healthy 177-run lead over Bangladesh's first innings total of 387 -- a position of strength from where they will look to force a series win after taking the first Test in Dhaka by 77 runs.
Samuels thrived on a lifeless pitch before being caught at point off a rising delivery from paceman Rubel Hossain, falling just one short of Ramnaresh Sarwan's 261 not out -- the highest by a West Indian batsman against Bangladesh -- made at Kingston in 2004.
The right-handed batsman hit 31 fours and three sixes during a dominating 455-ball knock.
The seasoned Chanderpaul was not left far behind, as he reached his 27th Test hundred in the dying moments of the day when he steered spinner Sohag Gazi for a single towards mid-off, following up on his 203 not out in the first Test.
The 146-Test veteran has so far hit ten fours and a six off 206 balls.
The Samuels-Chanderpaul stand also improved the previous best for a fourth wicket against Bangladesh, erasing the 176-run stand involving Samuels and Sarwan in Dhaka ten years ago.
Samuels survived a confident leg-before shout off paceman Hossain's first over after lunch before steering the same bowler for a single to complete his double hundred.
Earlier, Samuels and Bravo continued to punish the hapless Bangladeshi bowlers after the West Indies resumed at 241-2.
Bravo hit Hossain for two boundaries in one over for his scored to enter the 90s before taking a couple and a single to complete his fourth Test hundred.
In the last over before lunch, Bravo was adjudged leg-before off spinner Gazi as he tried to cut the ball, which hit the pad first and then the bat. Bravo hit ten boundaries during his 288-ball innings.
Bangladeshi bowlers were found wanting on the slow track and their problems were compounded by edges falling short and a dropped catch in the slips by Naeem Islam off paceman Abul Hasan when Samuels was on 117.
Samuels took full advantage of the lapse and bettered his previous highest Test score of 123, which he made against New Zealand in Kingston earlier this year.
Gazi and Hossain finished with two wickets apiece.