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.
|Ozil captaining Arsenal a miracle - Hoeness|
|Japan players apologise for ´thoughtless, careless´ actions at Asian Games|
|Henry wants Bordeaux job, Wenger confirms|
|Pogba too inconsistent and not a leader, claims Scholes|
|PCB chairman Sethi resigns in letter to Pakistan prime minister Imran Khan|
|US Open comes too soon for Tsonga|
|Unpredictable results making 2018 F1 season a classic - Wolff|
|Mendy restricts phone use on Guardiola advice|
|Modric brands Inter approach claim ´the greatest nonsense in history´|
|Runners and Ryders: Olesen leapfrogs Poulter into last Team Europe berth|
|Kenedy escapes further action over Camarasa kick|
|England´s Bairstow suffers ´small fracture´ to finger|
|Gonalons joins Sevilla on loan from Roma|
|Modric, Ronaldo and Salah final UEFA Player of the Year nominees|
|Tottenham to play opening Champions League home match at Wembley|
|Karius´ Champions League blunders did not lead to Alisson signing - Klopp|
|Leeds considered €20m Conte offer before turning to Bielsa|
|Modric, Rakitic lead new era for World Cup finalists Croatia|
|Storm´s Chambers banned for three weeks, Smith injury not serious|
|Porte to race Vuelta after recovering from Tour crash|
|The Career Golden Masters: A run-down of Djokovic´s magnificent record|
|Japan send home four basketball players from Asian Games amid prostitution scandal|
|Rugby tackle bags helping Liverpool´s Alisson with Premier League life|
|Federer raring to go at US Open after Djokovic defeat|
|Chelsea boss Sarri plans to give up smoking|
|Alonso´s Toyota team stripped of Silverstone victory|
|Ceballos: No issue with former Real Madrid boss Zidane|
|MLS Review: Martinez equals single-season goalscoring record|
|Astros avoid sweep with win over Athletics|
|Seppi advances, Paire exits Winston-Salem|
|Bale feeling good as Madrid eye sweep of trophies|
|You can´t leave a house three-quarters built – Neville urges United to back Mourinho|
|Dodgers slugger Machado leaves game after being struck by pitch|
|Harden says Carmelo will ´be a good fit´ for Rockets|
|Morata: I never considered Chelsea exit|
|Gavrilova kicks off title defence in New Haven|
|Lopetegui pleased with Bale and Real Madrid after LaLiga opener|
|It´s a very special moment – Djokovic revels in Golden Masters achievement|
|Sorrentino thanks Ronaldo for support after injury|
|Twins place Santana on DL with finger injury|
|Yankees´ Gregorius suffers ´pretty significant´ heel bruise|
|Snedeker ends PGA Tour drought with Wyndham Championship win|
|Spalletti unconcerned despite Inter´s underwhelming start|
|Djokovic makes history with Masters clean sweep in Cincinnati|
|Real Madrid 2 Getafe 0: Bale gives Lopetegui first LaLiga win|
|IndyCar driver Wickens taken to hospital after crash|
|Sherman calls for NFL to scrap ´idiotic´ helmet rule|
|Sassuolo 1 Inter 0: New-look Nerazzurri given early reality check|
|Hughton: Shock United win does not alter scale of Brighton´s task|
|Navas keeps place as Courtois waits on Madrid debut|
|Ndidi signs long-term Leicester City contract|
|Pandya tears through feeble England to put India in command|
|Alonso creates motorsport history with victory at Silverstone|
|Kovacic: Chelsea and Sarri believe in me|
|Brighton loss a big lesson for United – Pogba|
|Mistakes hit United´s confidence - Mourinho|
|Brighton and Hove Albion 3 Manchester United 2: Murray lifts Seagulls to another win over Mourinho|
|Quickfire Moon treble sets up Rhinos win|
|Manchester City celebrate win with Silva´s son|
|Brentford 2 Sheffield Wednesday 0: Maupay stars as Bees buzz by Owls|
|Guardiola delighted with fit and firing Aguero|
|Waring marks 200th event with maiden title in Gothenburg|
|Guardiola dismisses Mourinho´s ´disrespectful´ accusation|
|Hulkenberg proud to survive in F1´s pay driver era|
|It´s here, it´s real, get on with it - Dyche dismisses Europa League excuse|
|Grujic agrees Liverpool extension, joins Hertha on loan|
|Martial starts as Lukaku, Young return for Manchester United|
|Fury-Wilder to be staged in November or December - Warren|
|Manchester City 6 Huddersfield Town 1: Aguero hits hat-trick as champions triumph|
|Burnley 1 Watford 3: Hornets end away day woes as Deeney leads destructive display|