Sri Lanka clung on to draw the first Test against India after Bhuvneshwar Kumar went close to inspiring a sensational last-day win for the hosts in Kolkata.
After Shikhar Dhawan and KL Rahul led a fourth-day recovery for India, captain Virat Kohli scored his 50th international century - naturally in record fashion - to give the hosts a faint sniff of victory with a session and a bit to bowl Sri Lanka out.
Kohli reached three figures with a six before India declared on 352-8, setting their opponents 231 to win with 40 overs remaining.
With bad light bringing the previous four days to a premature close, it never looked likely, but Bhuvneshwar delivered a brilliant performance, taking 4-8, while Mohammed Shami took two more wickets in a blistering support act to reduce Sri Lanka to 75-7 from just 26.3 overs before the light curtailed any further excitement.
After having the best of the first three days in this contest, such a collapse will not do Sri Lanka's confidence any good as the three-match series next heads for Nagpur.
But India will be brimming after the performances of their bowlers and captain Kohli, whose half-century of international hundreds came in his 348th appearance - level with the record-holder, Hashim Amla.
In worsening conditions for batting, Kohli's knock oozed class, displaying not only his apex technique but also battling qualities.
The skipper got off a pair as he gloved Suranga Lakmal over wicketkeeper Niroshan Dickwella for four, but the Sri Lanka paceman was causing Kohli and Cheteshwar Pujara - who batted on every day of this Test - serious problems, having earlier bowled Rahul for 79.
Lakmal finally had his reward taking Pujara (22) and Ajinkya Rahane (0) in the same over, and Kohli regularly lost partners while scratching his way through his innings.
But Sri Lanka's decision to immediately take the new ball backfired as Kohli accelerated from 58 of 93 balls to a century from just 26 more, spanking Lakmal over extra cover and then heading to the dressing room.
After heavy rain on day one, India had been reduced to 50-5 on the second morning of this Test, but incredibly had a chance of winning the contest when Bhuvneshwar and Shami reduced Sri Lanka to 22-4 inside 12 overs.
Knocks of 20 from Dinesh Chandimal and 27 by Dickwella would ultimately prove vital, just holding the Indian charge up enough.
Dickwella survived a catch behind on review and Dilruwan Perera survived a DRS for lbw before Bhuvneshwar flattened his off-stump, but umpires Nigel Llong and Joel Wilson convened midway through the 26th over with the light meter before Kohli shook hands with the Sri Lanka batsmen, who had escaped an almighty scare.
|Injured Kusal Perera replaced by Kusal Mendis in Sri Lanka squad|
|Big names return for Scotland´s November Tests|
|Essien tells Loftus-Cheek to stay and fight for Chelsea chance|
|Nainggolan relishing challenge of first Milan derby|
|Curry: Slap me if I tire of championship celebrations|
|Sevilla don´t fear Messi or Barca – Kjaer|
|Low: Dropped Muller is still very important for Germany|
|Hayward put ´dark memories´ behind him with Celtics return|
|I hope I´m in Klopp´s good books! - Koeman jokes after resting Wijnaldum|
|Rested Fellaini should be fit for Manchester United, says Martinez|
|France´s mentality must be right - Lloris|
|Bellinger seals dramatic win as Dodgers level up NLCS|
|Curry, Durant lead Warriors past Thunder|
|Kjaer surprised by LaLiga-leading Sevilla as Machin´s men remain grounded|
|A-League preview: Honda the big arrival as fascinating season awaits|
|Mexico 0 Chile 1: Sanchez helps La Roja to late win|
|Celtics too good for 76ers in NBA opener|
|United States 1 Peru 1: Flores salvages late draw for visitors|
|Martinez not worried about Belgium depth|
|Red Sox move ahead of Astros in ALCS|
|Depay ´a joy to watch´, says Koeman|
|Timberwolves owner looking to trade Butler, backs Thibodeau|
|Shepard says Giants have ´total faith´ in Manning|
|Hazard is out of this world – De Ligt enjoys Belgium test|
|Tite: Brazil were better than Argentina|
|Foley eyes World Cup after re-signing with Wallabies, Waratahs|
|Low slams decisive France penalty call|
|I fined him for his goal at Old Trafford! Giggs delighted for Wales hero Wilson|
|Matuidi lauds Deschamps´ tactical nous after Germany win|
|Scaloni excited by Argentina despite Brazil loss|
|Tsonga back in business, Dzumhur dumped out in Moscow|
|Germany suffer six defeats in a year for first time|
|Many clubs have asked about Piatek - agent|
|Bartomeu: Barca open to defensive reinforcements after Vermaelen injury|
|Bonn spoil PAOK´s landmark European game|
|Konta conquers Mertens in Moscow|
|Republic of Ireland 0 Wales 1: Wilson stunner moves Giggs´ side top|
|France 2 Germany 1: Griezmann delivers Low blow as Les Bleus reign in Paris|
|Belgium 1 Netherlands 1: Groeneveld cancels out Mertens strike|
|Argentina 0 Brazil 1: Miranda heads late winner after rivalry fails to ignite|
|Messi would struggle in this Manchester United team – Scholes|
|Falcons place Devonta Freeman on injured reserve|
|Westbrook ruled out of Thunder opener|
|Wilder´s team open to Joshua talks|
|Brentford appoint Thomas Frank as new head coach|
|England´s perfect performance sets the standard - Trippier|
|Odell Beckham Jr. needs to create headlines on the field, says Giants owner|
|Robshaw joins list of England absentees|
|Chile need goals from Sanchez despite United form - Rueda|
|Modric reveals Ronaldo respect, ´will never play with´ Messi|
|Osaka can be one of the greats, says coach Sascha Bajin|
|Liverpool´s Naby Keita carried off injured in Guinea match|
|Duminy to miss Australia tour for shoulder surgery|
|F1 Raceweek: Ferrari ready to ´challenge the impossible´ as Hamilton nears title|
|Umesh replaces injured Thakur in ODI squad|
|IAAF delay implementation of testosterone ruling amid Semenya challenge|
|Fakhar and Sarfraz lead Pakistan recovery after Lyon blitz|
|Japan see off Uruguay in seven-goal thriller|
|Arda Turan given huge fine by Istanbul Basaksehir after alleged brawl with singer|
|Busquets no better or worse than Dier – does Opta data back up Allardyce claim?|
|United boss Mourinho charged for alleged post-match comments by FA|
|Halep withdraws from Kremlin Cup ahead of WTA Finals|
|Renato Sanches eager for further Bayern Munich minutes|
|Nations League standings: Promotion, relegation and race for finals|
|Windies coach Law banned for ´inappropriate comments´ in India Test|
|Carrick denies Manchester United stars are ´not trying´|
|Ferrari struggling under pressure of chasing Mercedes, says Massa|
|Australia desperately need Smith and Warner back - Warne|
|Draxler warns Germany: Mbappe has 300 hp!|
|Draymond Green says Warriors will have to ´bring it´ every night in the West|