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.
|Agnelli: No super league talks since 2015|
|I hope from now on it only gets better - Floersch update on horror crash|
|Calf injury rules Ashton out of Australia match|
|Halfpenny to miss South Africa clash|
|Hard for Lazio to hold on to Milinkovic-Savic, says Lotito|
|Australia´s next generation pay tribute to retiring Cahill|
|Bairstow pushing hard for Test recall|
|Cane eyes 2019 Super Rugby return after neck break|
|Van Dijk finds time to console referee during Dutch delight|
|Cahill sheds tear at end of phenomenal Australia career|
|WATCH: Pelicans coach Gentry interviews himself|
|Where does Chiefs-Rams classic rank among NFL´s highest-scoring matches?|
|Australia 3 Lebanon 0: Boyle bags brace on Cahill farewell|
|Guendouzi underlines desire to represent France|
|I might need a couple of drinks to relax after that! - Rams coach McVay|
|Juventus´ Alex Sandro has Premier League ambition|
|Ederson taking goalkeeping to another level, says City hero Weaver|
|Ceferin dismisses "super league" plans as fiction|
|Rams defeat Chiefs in one of the highest scoring games in NFL history|
|Kemba Walker leads Hornets to win over Celtics|
|Gomez praises ´top player´ Van Dijk, Stones|
|Cricket Australia to maintain Smith, Warner ball tampering bans|
|Brazil´s Tite encouraged by Neymar captaincy|
|Holmes set for NFL switch after Cronulla release|
|Dier encourages English youngsters to follow Sancho´s lead|
|Southgate promises further changes to England squad|
|Jones sceptical over Pocock injury|
|Sane encouraged despite Germany´s ´annoying´ Nations League draw|
|Character got Netherlands through, says Koeman|
|Netherlands´ focus still on Euros - Van Dijk|
|Ireland will be ready for qualifiers, insists O´Neill|
|Smith undergoes successful surgery, Redskins sign Sanchez|
|Germany 2 Netherlands 2: Dramatic five-minute fightback seals Oranje progression|
|Denmark 0 Republic of Ireland 0: Thrills at a premium again in Aarhus|
|O´Brien could return for start of Six Nations|
|Cavani: Neymar and I are ´friends, brothers, team-mates´|
|Pothas named Windies interim head coach|
|LA Galaxy planning for Ibrahimovic stay|
|NFL will return to Mexico City in 2019|
|Broner vows to end Pacquiao´s career in Las Vegas|
|UEFA should punish PSG and Man City, says LaLiga chief|
|Teenage driver Floersch has ´no fear of paralysis´ after operation|
|Mancini bemoans Italy´s misfortune in front of goal|
|Sprint legend Johnson ´pretty much back to normal´ after stroke|
|Bournemouth defender Adam Smith out for three months|
|World champions France out to end 2018 on a high|
|I told him there´s no future in football! A-Rod relieved to be ignored by Mahomes|
|Dembele must focus and be more responsible - Suarez|
|Neymar could return one day – Barca chief|
|Cole backs West Ham to keep Arnautovic|
|Injury rules Bernardo Silva out of Poland clash|
|Lamar Jackson debut start ´spectacular´ - Ravens coach Harbaugh|
|Babar run out the turning point, laments Sarfraz|
|West Ham boost London Stadium capacity to 60,000|
|A great advertisement for Test cricket - Williamson revels in stunning win|
|Van Dijk one of the world´s best - Klaassen|
|Floersch had ´angel on her shoulder´ in horror crash|
|Gascoigne charged with sexual assault|
|I am going to stay at Chelsea and fight, insists Giroud|
|Hansen to make announcement on All Blacks future|
|I have reached the top by joining Chelsea - Sarri|
|Bonucci tells Italy boo boys to ´live with less envy´|
|Dramatic Pakistan collapse gives Stead first New Zealand Test win|
|Button enjoying racing for first time in years|
|Dortmund chief not planning Pulisic sale|
|Theismann: Smith leg break ´heart-wrenching´ to watch|
|Wolves defender Jonny suffers knee injury|
|Holmes to meet with Sharks amid NFL switch talk|
|LeBron made 51 points ´look easy´, says Walton|
|McGuire signs four-year deal with Cowboys|