The writings were on the wall. India won the high-scoring opener in Guwahati thanks to Kohli and Rohit's hundreds; then in Vizag, escaped with a tie despite scoring 321. And today, lost the match while chasing a below-par target. In all three matches, Windies looked the better side.
This is the third time that India has lost a chase even with Kohli scoring a hundred, after 123 (111) vs New Zealand at Napier in 2014 and 106 (92) vs Australia at Canberra in 2016. Kohli also became the first Indian and 10th overall to score three successive hundreds in ODIs, but it could not prevent West Indies from tasting their first win of the tour.
After making a commendable recovery from a shaky start to post 283 for nine on the board, West Indies bowlers rattled the Indian middle and lower middle-order, to snuff out a victory and level the series. The hosts were bundled out for 240 in 47.4 overs.
The fourth match will be played at Mumbai on October 29 (Monday).
Result: India Lost By 43 Runs
West Indies: 283 for 9 in 50 overs (Shai Hope 95, Jasprit Bumrah 4/35)
India: 240 all out in 47.4 overs (Virat Kohli 107; Marlon Samuels 3/12).
India Innings; Target 284
Over 47.4 || Score 225/8 (Kuldeep Yadav 15)
India suffered a 43-run defeat. This is the first loss for India at home when Virat Kohli has scored a hundred in a chase.
Marlon Samuels picked the last wicket, that of Jasprit Bumrah to set up their first win of the tour.
Wicket: Jasprit Bumrah c Jason Holder b Marlon Samuels 0(3); Fall of wicket: 240 all out (47.4 over)
Toss was vital, and India won it. But opted to bowl first. At hindsight, it seemed a bad decision. And there's middle-order wobble.
Over 47 || Score 225/8 (Kuldeep Yadav 13;Jasprit Bumrah 0)
Marlon Samuels, after his failure with the bat, has utilised his bowling arm to great effect. he has got two in three overs, the latest victim being Khaleel Ahmed. Stumped.
Wicket: Khaleel Ahmed st Shai Hope b Marlon Samuels 3; Fall of wicket: 237/9 (45.6 over)
India need 47 runs and one wicket at hand.
Over 43 || Score 225/8 (Kuldeep Yadav 3;Khaleel Ahmed 0)
India lost three wickets for 21 runs in the last five overs, including that of Virat Kohli. The match is as good as over for the hosts.
Wicket: Yuzvendra Chahal c (sub) K Paul b Kemar Roach 3; Fall of wicket 225/8 (42.6 over)
Wicket: Virat Kohli b Marlon Samuels 107; Fall of wicket 220/7 (41.3 over)
Wicket: Bhuvneshwar c Powell b Obed McCoy 10(17); Fall of wicket 215/6 (40.2 over)
India need 59 runs in 42 balls. Huge ask. What an implosion.
Over 37.1 || Score 166/5 (Virat Kohli 100; Bhuvneshwar Kumar 1)
Two quick wickets as Windies fought back in the match. First, Ashley Nurse got the better of Rishabh Pant, caught behind; then Jason Holder sent back MS Dhoni, caught behind.
Wicket: MS Dhoni c Shai Hope b Jason Holder 7; Fall of wicket 194/5 (35.5 over)
Wicket: Rishabh Pant c Shai Hope b Ashley Nurse 24; Fall of wicket 172/4 (31.1 over)
But Virat Kohli carried on batting as if nothing's happened at the other end. Completed third hundred of the series in the third match, from 110 balls.
India need another 82 runs.
Over 30 || Score 166/3 (Virat Kohli 73; Rishabh Pant 23)
A 47-run stand between skipper Virat Kohli and Ambati Rayudu broken as the youngster dragged on an Obed McCoy delivery.
Wicket: Ambati Rayudu b Obed McCoy 22; Fall of wicket 135/3 (25.4 over)
Rishabh Pant joined Kohli in the centre, and they stitched a 31-run stand in 26 balls. India still need another 118 runs.
Over 25 || Score 134/2 (Virat Kohli 65; Ambati Rayudu 22)
Run-a-ball 46-run stand between Virat Kohli and Ambati Rayudu has steadied the Indian innings. Skipper has compiled another 50. In the last five overs, India have added 37 runs and they need another 150 runs from 25 overs.
Over 21 || Score 98/2 (Virat Kohli 47; Ambati Rayudu 5)
India lost both the openers, but Virat Kohli is in complete control of the proceedings in Pune. India still need another 184 runs to make it 2-0 in the five-match series.
Over 18 || Score 90/2 (Virat Kohli 43; Ambati Rayudu 1)
Then, two Delhi batsmen Shikhar Dhawan and Virat Kohli stitched a half-century stand to thwart the Windies interest. But Dhawan departed in the 18th over, trapped in front by Ashley Nurse.
Wicket: Shikhar Dhawan lbw b Ashley Nurse 35; Fall of wicket 88/2 (17.2 over)
Ambati Rayudu joined the skipper in the centre.
Over 12 || Score 66/1 (Shikhar Dhawan 29; Virat Kohli 26)
India's chase started in the worst possible manner, losing opener Rohit Sharma in the second over itself. Clean Bowled by Windies captain Jason Holder.
Wicket: Rohit Sharma b Jason Holder 8; Fall of wicket: 9/1(1.6 over)
But skipper Virat Kohli and Shikhar Dhawan steadied the Indian innings. Kohli in the process has become the second highest scorer against the Windies in ODIs, only behind Javed Miandad's 1930. Kohli has 1708+.
West Indies Innings
Jasprit Bumrah denied Shai Hope a second-consecutive century on his way to a four-wicket haul but the West Indies made a superb recovery after a shaky start to post a respectable 283 for nine. Returning to the team after being rested for the first two matches, Bumrah emerged the most effective bowler, conceding just 35 in his 10 overs.
Hope, who had struck an unbeaten 123 in the Visakhapatnam ODI, played a significant role in reviving the Caribbean innings with his 95-run knock, which came off 113 balls. Towards the end, Nurse and Kemar Roach (15 not out) added crucial 56 runs for the ninth wicket, taking the side close to 300-run mark.
The West Indies batsmen got starts but could not convert them into big knocks and also struggled to form big partnerships.
Over 50 || Score 283/9 (Kemar Roach 15; Obed McCoy 0)
Windies added crucial 45 runs in the last five overs to set up a good total of 283/9. Shai Hope top scored with 95 off 113 balls, while Ashley Nurse contributed with 40 off 22 balls.
Over 42 || Score 218/7 (Shai Hope 90; Ashley Nurse 0)
Bhuvneshwar Kumar got his first wicket of the day in the form of the West Indies captain Jason Holder, who was looking in a good touch. Top edged and caught at mid-on by substitute fielder Ravindra Jadeja.
Wicket: Jason Holder c sub (Ravindra Jadeja) b Bhuvneshwar Kumar 32; Fall of wicket: 197/6 (38.3 over)
Debutant Fabian Allen also didn't last long. Perished after making five, caught by Rishabh Pant off the bowling of Yuzvendra Chahal.
Wicket: Fabian Allen c Rishabh Pant b Yuzvendra Chahal 5; Fall of wicket: 217/7 (41.3 over)
But Shai Hope is carrying on, is on 90. Ashley Nurse is his new partner.
Over 31 || Score 148/5 (Shai Hope 47; Jason Holder 12)
Shai Hope and Jason Holder are in the middle of building a stand as Windies look to weather the Indian attack. They have added 17 runs in the last five overs.
Over 24 || Score 121/5 (Shai Hope 33; Jason Holder)
Kuldeep Yadav got two in quick time. MS Dhoni is having a field day today. Just got his third victim. Quick work behind the stumps to stump a dangerous looking Shimron Hetmyer.
Wicket: Shimron Hetmyer st MS Dhoni b Kuldeep Yadav 37; Fall of wicket: 111/4 (19.3 over)
Then Rohit Sharma took a stunning catch at first slip to send back Rovman Powell, off the bowling of Kuldeep Yadav.
Wicket: Rovman Powell c Rohit Sharma b Kuldeep Yadav 4; Fall of wicket: 121/5 (23.4 over)
Skipper Jason Holder is the new man for the visitors.
Over 14 || Score 62/3 (Shai Hope 15; Shimron Hetmyer 1)
Windies veteran Marlon Samuels poor form continued. The 37-year-old, who made zero and 13 in the first two matches, departed after making nine as Khaleel get his first scalp of the match.
Wicket: Marlon Samuels c MS Dhoni b Khaleel Ahmed 9; Fall of wicket: 55/3 (13.1 over)
Shimron Hetmyer is the new man for the Windies.
Over 9 || Score 40/2 (Shai Hope 2; Marlon Samuels 1)
Second for Jasprit Bumrah. Windies left-handed opener Kieran Powell tried to play an outswinger from the pacer but ended up offering a catch at the cordon, where Rohit Sharma took a tough chance at first slip.
Wicket: Kieran Powell c Rohit Sharma b Jasprit Bumrah 21; Fall of wicket: 38/2 (8.1 over)
Five balls later, Bumrah got a favourable decision from the umpire. But the Windies challenged the LBW call on new man Marlon Samuels, and he survived.
Over 6 || Score 26/1 (Kieran Powell 9; Shai Hope 0)
Jasprit Bumrah removed opener Chandrapaul Hemraj, thanks to a brilliant running catch from Mahendra Singh Dhoni. Hemraj was surprised by a bouncer from Bumrah, which managed to get a top-edge. Dhoni covered some good distance and completed the catch with a full-length dive near square leg boundary.
Wicket: Chandrapaul Hemraj c MS Dhoni b Jasprit Bumrah 15; Fall of wicket: 25/1 (5.5 Over)
Shai Hope joined Kieran Powell in the centre.
Toss And Teams
India captain Virat Kohli won the toss for the third time in the series and opted to bowl first against the West Indies at Pune on Saturday.
India made three changes, with Bhuvneshwar Kumar, Jasprit Bumrah and Khaleel Ahmed coming in. Umesh Yadav, Mohammed Shami and Ravindra Jadeja are out.
India XI: Rohit Sharma, Shikhar Dhawan, Virat Kohli(c), Ambati Rayudu, MS Dhoni(w), Rishabh Pant, Bhuvneshwar Kumar, Kuldeep Yadav, Jasprit Bumrah, K Khaleel Ahmed, Yuzvendra Chahal
There's one change for the Windies. Spinner Fabian Allen makes his debut. He replaced Devendra Bishoo.
West Indies XI: Kieran Powell, Chandrapaul Hemraj, Shai Hope(w), Marlon Samuels, Shimron Hetmyer, Rovman Powell, Jason Holder(c), Fabian Allen, Ashley Nurse, Kemar Roach, Obed McCoy
India won the first match by eight wickets with 47 balls to spare in Guwahati, then played out a thrilling tie at Visakhapatnam.
In both the matches Kohli scored hundreds to create a host of records, including those of fastest player to hit 60 international tons and 10000 ODI runs.
It's a relatively new ground in the international circuit, having hosted only three ODIs before today. In all three matches, India batted second. India lost the first match to Australia by 72 runs in 2013, then on the next to against England and New Zealand by three and six wickets respectively in 2017. And, it's known as a batting paradise. India famously chased down England's 350 in 2017.
Follow updates from the third ODI match between India and the West Indies, being played at Maharashtra Cricket Association Stadium, Pune.
(With Agency inputs)