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.
|Zidane stands by selfless Benzema|
|Sodhi earns New Zealand ODI recall|
|´Important names´ keen on Inter star Icardi|
|Hughes returns in only England change|
|Manchester United v Chelsea: Mourinho and Conte´s feud in their own words|
|Manchester United v Chelsea: Grant´s disastrous debut, Drogba´s ´offside´ goal and other Old Traffor|
|Walker motivated by EFL Cup final showdown with Arsenal|
|Manchester United v Chelsea: ´Specialist in failure´, eye-pokes and Mourinho´s other best rows|
|CONCACAF Champions League Review: America close in on quarters with huge win|
|Keane defends Pogba as former United captain demands more from Lukaku and Sanchez|
|Stoger labels Reus ´indispensable´ amid Milan links|
|Ferdinand and Man United team-mates doubted De Gea|
|Sock, Isner and Raonic crash out at Delray Beach|
|Rain sees Cilic-Monfils suspended at crucial stage|
|Djokovic steps up rehab as Federer leads the way|
|Cuban fined $600K for tanking comments|
|Fowler says PGA National demands full attention|
|Rory McIlroy curbing expectations before Masters|
|Shakhtar would´ve won by more if not for Roma´s Alisson – Fonseca|
|Popovich would be ´surprised´ if Leonard returns for Spurs this season|
|Championship Review: Wolves squander two-goal lead to Norwich, Cardiff City take advantage|
|Mourinho happy with ´big effort´ from Pogba|
|Benneteau ousts Bautista Agut in Marseille|
|Mourinho questions medical staff after ´bad´ Herrera injury|
|Sarri demands better from Napoli ´buffoons´|
|Mourinho hugs reporter for asking about McTominay instead of Pogba|
|Di Francesco slams Roma: I should have substituted half of them!|
|Curtains for Konta and Ostapenko in Dubai|
|De Gea happy with ´important´ wonder save|
|Woods eager to experience Masters ´rush´|
|Vazquez and Asensio important to Madrid, says Zidane|
|Shakhtar Donetsk 2 Roma 1: Fred stunner seals first-leg comeback|
|Sevilla 0 Manchester United 0: De Gea ensures Mourinho´s men stay level|
|Klaasen and Duminy half-centuries set up T20 decider|
|Herrera injury gives dropped Pogba chance for reprieve|
|Tindall urges England to ´hunt´ vulnerable Scotland|
|Firmino insists he did not abuse Holgate|
|Leganes 1 Real Madrid 3: Casemiro inspires comeback for Zidane´s men|
|Milan have everything to lose – Gattuso worried about complacency|
|United a big team in defeat - Mourinho aims dig at City|
|Firmino escapes punishment after Holgate allegation|
|Mourinho benches Pogba for Sevilla clash|
|Cavendish withdraws after Abu Dhabi crash|
|Rugby greats put on show in French Alps snow|
|Gremio refute claims of €40m Arthur agreement with Barcelona|
|Messi will sign another Barcelona contract, predicts Bartomeu|
|UEFA rejects PSG appeal over Rabiot´s Real Madrid booking|
|Hardaker sacked by Tigers after failed drugs test|
|James to miss ´a few days´ of Bayern training with calf injury|
|Bellew not feeling Haye love|
|Nantes not stopping Ranieri if Italy come calling|
|Milan owner Li slams ´fake news´ over financial woes|
|Italy make three changes for France encounter|
|Wenger still gunning for top four spot with Arsenal|
|AFC Champions League Review: Kanazaki braces inspires Kashima|
|Gloucester centre Scott to re-join Edinburgh|
|Ospina to get Wembley nod as Wenger waits on Ramsey|
|Pogba not struggling at United, claims Deschamps|
|No police action against Gloucester coach Ackermann or son after nightclub incident|
|Australia proved a point with tri-series dominance, says Warner|
|Escape Messi´s shadow? Change sport! - Henry´s advice to Neymar|
|Scotland unchanged for crucial Calcutta Cup clash|
|Horsing around: Muller takes tips from equine companion|
|Lynn set for further assessment on dislocated shoulder|
|Ronaldo jets off for a break as Madrid head to Leganes|
|Bastareaud back in one of five France changes|
|Mistake to let Kroos leave Bayern for Madrid - Sammer|
|Short´s fifty and Agar´s spin seal deserved Australian tri-series win|
|Spalletti tips Ancelotti for Italy job|
|I can´t wait for retirement - Federer|