He delivered the masterclass batting style in the first match against Windies.
Shaw is now the seventh youngest player ever to score a hundred. Last Indian to achieve this feat was Rohit Sharma, also against West Indies in 2013.
Rishabh Pant (17) and skipper Virat Kohli (72) were at the crease when umpires dislodged the bails for the day.
He built a solid partnership with Cheteshwar Pujara.
Shaw, at 18 years and 329 days, reached the historic three-figure mark off just 99 balls at the Saurashtra Cricket Association Stadium. He became the 15th Indian player to do so and only the second player while playing at the opening. Unfortunately, Shaw fell at the stroke of tea, in what was a soft dismissal as he chipped one straight into the hands of leggie Devendra Bishoo.
Shaw's innings was studded with 19 fours while Pujara hit 14 boundaries before poking at a length ball half-heartedly to be taken by wicketkeeper Shane Dowrich off pacer Sherman Lewis, who bagged his first Test scalp.
The Mumbaikar punched the second ball he faced towards the cover boundary for a three, his first runs in worldwide cricket, easing whatever nerves left inside.
More importantly, Shaw had the confidence of several hundreds under his belt when he walked out to bat for India Thursday morning.
Any hopes West Indies had of finding further immediate breakthroughs were then dashed as Shaw and Pujara combined in a 206-run second wicket stand to consolidate the innings.
But at 337 in 84 overs, Roston Chase dismissed Rahane.