Batting pair guide India to 631 for seven declared as West Indies struggle to 34 for two at stumps in Kolkata Test.
Dhoni and Laxman put India in command
Laxman resumed his innings and hit a stylish 176 not out and Dhoni, the captain, produced a robust 144 as India posted a massive 631 for seven declared in their first innings at Eden Gardens in Kolkata.
The West Indies faltered in reply, reaching 34 for two when play was called off due to bad light. Kirk Edwards was unbeaten on 12 and Darren Bravo on four not out.
Umesh Yadav, the Indian seamer, struck in his first over when he had Adrian Barath (one) caught by Virender Sehwag at second slip before Ravichandran Ashwin, the off-spinner, removed Kraigg Brathwaite (17), caught by Gautam Gambhir at short-leg.
Laxman hit 12 fours in his 17th Test hundred, and the fifth at this venue, while Dhoni smashed five sixes and 10 fours in his fifth Test century as India continued to gather runs comfortably against both pace and spin.
The duo exposed the West Indies' bowling limitations on a slow pitch with a 224-run stand for the seventh wicket as the hosts added 285 runs to their overnight total of 346 for five.
It was India's second-highest total in a Test against the West Indies, their best being 644 for seven declared at Kanpur in 1979.
It was a demoralising day for the tourists, who could get just two wickets in more than two sessions as none of their bowlers could trouble Laxman and Dhoni.
Leg-spinner Devendra Bishoo, paceman Kemar Roach, seamer Darren Sammy and the part-time off-spin from Marlon Samuels all conceded more than 100 runs in a mediocre West Indies' bowling performance.
Dhoni dominated the big stand with Laxman with rich stroke play. He reached his century — his first since February 2010 — in the afternoon with a single to long-off to spinner Brathwaite.
The Indian skipper, caught behind off Roach no-balls when on 13 and 16, punished the spinners as he lofted Bishoo and Samuels over long-on for sixes before hitting Brathwaite for two sixes in an over.
Dhoni was caught behind in the last session immediately after hitting Roach for his fifth six.
Laxman, 73 overnight, completed his hundred with an attractive shot, flicking Sammy between mid-on and midwicket for a four.
The West Indies relied on fast bowlers Fidel Edwards and Roach in the morning in a bid to put pressure on India, but the duo went wicketless with the second new ball.
The tourists' lone success in the morning session came when Sammy trapped Yuvraj Singh leg-before for 25 after the batsman had added 50 for the sixth wicket with Laxman.
Yuvraj, trying to cement his place in the Test side, did not look comfortable during his brief stay at the crease, tested by Edwards and Roach with short-pitched deliveries.
The left-handed batsman was once struck on the shoulder by an Edwards bouncer before being dismissed by Sammy.
India lead 1-0 in the three-Test series following their five-wicket victory in the opening match in New Delhi.