23-year-old Shami took four wickets (4/71) as the visitors were bowled out for 234 in 78 overs. In reply, India had reached 37/0 in 12 overs by stumps on day one.
The crowd at Eden Gardens had come in to cheer their hero Sachin Tendulkar. They wanted to see him bat but got to see him bowl and take a wicket with his fourth ball.
From 107/2 at lunch, West Indies collapsed against an outstanding spell of reverse-swing bowling from homeboy Shami. They lost five wickets for 85 in the session. Overall, West Indies lost 8 wickets for less than 100 runs (from 138/2 to 234 all out).
MS Dhoni handed the ball to Tendulkar for the final over before tea and the Master Blaster struck to dismiss Shane Shillingford LBW.
The star of the day was Shami. He got Marlon Samuels (65) and Denesh Ramdin (4) bowled. Samuels' middle-stump was knocked back while Ramdin lost his off-stump. He wrapped up the innings by getting another batsman - debutant Sheldon Cottrell.
Darren Bravo was run out with Shami's throw to Dhoni. Pragyan Ojha got captain Darren Sammy caught at long-off by Bhuvneshwar Kumar. Dhoni dropped two catches, one each of Samuels and Shillingford.
With India perfectly poised for a big score tomorrow and Tendulkar to bat, West Indies have a tough task to bounce back.
Lunch: WI 107/2 in 33 overs
India struck twice early but Samuels' positive approach won the first session for West Indies as they moved to 107/2 in 33 overs.
Big-hitting Chris Gayle (18) was sent back cheaply by Bhuvneshwar Kumar (28) and soon his batting partner Kieran Powell too joined him in the pavilion giving debutant Shami his first wicket in Tests.
With 47/2, India had a bit of advantage but that was neutralised by Samuels. The right-handed number four batsman was positive against the spinner R Ashwin and Pragyan Ojha.
Samuels hit two sixes and seven boundaries on way to a 55-ball 45 not out while left-handed Darren Bravo took the cautious route to 16 not out off 71 deliveries (1x4, 1x6).
Earlier, West Indies captain Darren Sammy won the toss and chose to bat.
India handed debuts to Rohit Sharma and Shami. Ishant Sharma, Umesh Yadav, Amit Mishra and Ajinkya Rahane missed out.
Sachin Tendulkar is playing his 199th and penultimate Test of his career. He will retire after the 200th in Mumbai.
Rohit's brilliant run of form in the recently concluded ODI series against Australia has won him a Test place. He was presented with the Indian cap by Tendulkar.
At the toss, India captain MS Dhoni said it was a "tricky" decision whether to pick the fifth bowler or choose an additional batsman.
India's bowling combination will be two pacemen and two spinners (R Ashwin and Pragyan Ojha).
For the West Indies, fast bowler Kemar Roach missed out due to shoulder problem. Left-arm pacer Sheldon Cottrell made his debut.
A special gold coin with Tendulkar's image and "199th Test match" on one side and "Eden Garden, CAB, 6th Nov, 2013" on the other, was used.
India: MS Dhoni (captain), Shikhar Dhawan, Murali Vijay, Cheteshwar Pujara, Sachin Tendulkar, Virat Kohli, Rohit Sharma, R Ashwin, Bhuvneshwar Kumar, Mohammed Shami, Pragyan Ojha.
West Indies: Darren Sammy (captain), Chris Gayle, Kieran Powell, Darren Bravo, Marlon Samuels, Shivnarine Chanderpaul, Denesh Ramdin (wicketkeeper), Shane Shillingford, Veerasammy Permaul, Sheldon Cottrell, Tino Best.