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.
|Celtics capitalise on Thunder meltdown, Harden scores 42 points|
|Jason Day hungry to reclaim top ranking: My game is close|
|Iconic 2002 World Cup haircut was media distraction, reveals Ronaldo|
|New Zealand star Taylor fit for day-night Test|
|Teenager Anisimova to face Muguruza in Miami|
|McIlroy credits Wayne Rooney for improved putting|
|Stokes return a ´huge boost´ for England – Root|
|Wright: Difficult for Liverpool sensation Salah to resist Real Madrid|
|Yaya Toure yet to report for international duty, confirm Ivory Coast|
|Masters favouritism could hinder Woods, Thomas claims|
|I wish I could still play with him – Ortiz on Red Sox addition Martinez|
|Morrison confirms plans to play for Jamaica|
|Warriors target Friday return for Curry against Hawks|
|Starc and Marsh set to play at Newlands|
|Red alert: Richard Sherman ´excited´ to be a 49er|
|Germany should be proud to have Sane, says Tah|
|Bertrand out of England friendlies with back injury|
|Optimistic McIlroy ´crossed that line´ with Bay Hill win|
|Young backs Mourinho over Shaw treatment|
|BVBolt? Athletics great scores header while training in Dortmund kit|
|Fekir will look to leave Lyon the right way, says agent|
|Ex-Springboks coach Meyer takes charge at Stade|
|Spieth relishing Reed match play showdown|
|Alisson loves Roma and we haven´t discussed Liverpool move, insists agent|
|Henderson becomes third Ireland player to sign new deal|
|Romo ready to create ´mental bubble´ ahead of PGA Tour debut|
|McTominay: I always wanted to play for Scotland|
|Chiesa vows to honour Astori with Italy displays|
|England´s Pope ready for Heaton challenge amid World Cup race|
|Lautaro Martinez confirms impending Inter move|
|Morata wasn´t happy with Spain snub, admits Alonso|
|Raiola rages over Italy´s Balotelli snub|
|Injured Saunders postpones Murray fight|
|PGA tightens security at Dell Match Play in wake of Austin bombings|
|Raiola hopes Reina to Milan hastens Donnarumma exit|
|F1 Raceweek: Hamilton prepares to begin title defence in Melbourne|
|Former Sevilla coach Berizzo eyeing return after beating cancer|
|Cutrone did not expect whirlwind Milan season and Italy call-up|
|Saints punish North for missing training|
|´Happy´ Kepa mulled over Real Madrid move|
|GGG wants Saunders next if Alvarez bout is called off|
|Former All Black Mika passes away|
|Lucas Vazquez keen on Real Madrid stay|
|South Africa delighted to call on ´world´s best´ Rabada|
|Tiger Woods continues climb in FedEx Cup, world rankings|
|Juventus clear Chiellini of serious injury|
|Newcastle charged as youth team allegedly breach advertising regulations|
|Kearney joins Best in extending Ireland contract|
|I did not betray Roma – Pjanic could not pass up Juventus opportunity|
|Cardiff Blues appoint Mulvihill as Wilson replacement|
|Title-chasing Sarri closes on Napoli renewal as he hopes to repay fans|
|Cook: I wasn´t close to quitting during Ashes|
|Messi and Ronaldo reveal World Cup kits|
|Nara praises Inter project as Icardi talks continue|
|Best to lead Ireland in World Cup after signing extension|
|Marseille´s Rami wants to ´tickle´ PSG|
|Fury targeting Louis´ record for title defences|
|Salah can push on to Messi´s level - Robertson|
|Rabada free to play in rest of South Africa-Australia series|
|F1 2018: Halo splits opinion ahead of Australia debut|
|Iniesta better than last year – Lopetegui|
|Federer yet to decide on clay-court season|
|Okon quits as Mariners head coach|
|LeBron triple-double powers Cavs past Bucks as Love returns|
|Lopetegui: Morata must earn World Cup spot|
|Ronaldo has asked about China – Scolari|
|Ebron signs two-year deal with Colts|
|Spieth, Reed to do battle in Match Play|
|Rangers´ Perez slaughtered, ate bull that caused broken elbow|
|Bills improve offensive line with Bodine, Newhouse|