The incomparable Jasprit Bumrah became only the third Indian to pick a Test hat-trick after Hanuma Vihari's maiden ton, powering the visitors to a commanding position in the second match against the West Indies here.
In a lethal opening spell on Saturday, Bumrah (6/16) rattled the West Indies by picking up the first five wickets, three of which came in successive balls in the ninth over.
As a result, the hosts, trailing 0-1 in the two-match series, were tottering at 87 for seven at stumps on the second day.
Bumrah made inroads into West Indies line-up in the seventh over by inducing an edge from John Campbell, which Rishabh Pant accepted gleefully.
Bumrah was at his best as he picked up the wickets of Darren Bravo, Shamarh Brooks and Roston Chase to register his name in the record books.
He first had Bravo caught by K L Rahul in the second slip and then had both Brooks and Chase LBW in the next two balls.
Part of the credit for Bumrah's hat-trick must also go to skipper Virat Kohli, who insisted on a review after Chase was given not out by on-field umpire Paul Reiffel.
Bumrah, thus, joined Harbhajan Singh and Irfan Pathan to register a hat-trick in Test cricket for India.
Shimron Hetmyer (34) was cleaned up by Mohammad Shami before Bumrah came back to dismiss West Indies skipper Jason Holder.
West Indies trailed India by 329 runs with three full days play remaining.
Earlier, Vihari scored a career-best 111 off 225 balls with the help of 16 boundaries.
Together with Ishant (57 off 80 balls), who scored his maiden fifty, Vihari shared 112 runs off 28.3 overs for the eighth wicket.
While Vihari looked rock solid, Ishant gave him the perfect support from the other end, as the duo frustrated the West Indian bowlers for a long time. The hosts needed 140.1 overs to bowl out the visitors.
Coming on to bat at the overnight score of 42, Vihari stuck to his task and held one end together.
Resuming at overnight 264 for five, India lost Rishabh Pant (27) on the opening delivery of the day.
Pant was cleaned up by Holder (5/77) with an inswinger as the batsman leaned for a drive.
Thereafter, Vihari and Ravindra Jadeja played according to the situation to nullify any threat from the West Indies bowlers.
Vihari notched up his fifty in 96 balls.
Jadeja (16) did all the hardwork but gave away his wicket when it mattered, top-edging a Rahkeem Cornwall (3/105) delivery to Bravo at mid-on while going for a big slog.
An over later, Vihari got a big reprieve when he was dropped by Campbell off Cornwall in the first slip.
To add to the West Indies' woes, Vihari picked up two boundaries in the remaining balls off Cornwall's over.
Vihari, who scored 93 in Antigua, reached his maiden Test ton in 200 balls, with the help of a single off Roach in the 133rd over.
Ishant was not to be left behind as he followed his senior batsman by reaching his first Test half-century, off 69 balls, with a single off Cornwall.
After reaching the milestone, Ishant started to play some loose shots, which eventually led to his downfall.
Mohammad Shami didn't trouble the scorers as he nicked a Cornwall delivery to Jahmar Hamilton.
Vihari also ran out of patience and played a lofted shot, only to be caught by Roach for Holder's fifth wicket.