India opener Shikhar Dhawan smashed another hundred and KL Rahul made a record-equalling half-century before Sri Lanka hit back on day one of the third Test in Pallekele.
Dhawan put Sri Lanka's attack to the sword with a magnificent 190 in the first Test and he hit a brisk 119 as the India openers cashed in after Virat Kohli won the toss on Saturday.
Rahul (85) gave another exhibition of his class at the top of the order, becoming only the sixth man to score 50 or more in seven consecutive Test innings courtesy of a first-wicket stand of 188.
Malinda Pushpakumara (3-40), in only his second Test, sparked Sri Lanka's revival after lunch and Lakshan Sandakan (2-84) struck twice, leaving India 329-6 at stumps as they target a 3-0 series whitewash.
Wriddhiman Saha (13 not out) and Hardik Pandya (1 no) will resume in Kandy on Sunday.
The aggressive Dhawan latched on to short stuff from the recalled Lahiru Kumara with some exquisite cuts, while Rahul pulled expertly and drove with elegance as India got off to an ominous start.
Kumara was removed from the attack after only three overs and failed to redeem himself for a poor opening spell when he dropped Rahul on 28 running back from mid-on off the bowling of Dimuth Karunaratne.
That proved to be costly as Dhawan and Rahul continued to score all too easily, the left-hander setting about spinner Dilruwan Perera.
The prolific Rahul, who timed the ball superbly, etched his name in the record books with yet another half-century and Dhawan raced on to 64 as India reached lunch on 134 without loss.
Angelo Mathews had no time to react when Rahul edged a cut past him at slip off Sandakan, but he missed out on a century after dancing down the track to strike Pushpakumara to Karunaratne at mid-on.
Cheteshwar Pujara was rattled on the helmet by a short ball from Kumara before Dhawan brought up his sixth Test hundred by using his feet superbly to drive Pushpakumara wide of mid-off for four.
Dhawan's stylish 123-ball knock, which included 17 boundaries, ended when he swept Pushpakumara to a diving Dinesh Chandimal and Pujara (8) fell before tea, caught cutting Sandakan to Mathews in the slips, as the hosts' persistence finally paid off.
Pushpakumara bowled Ajinkya Rahane (17) and Sandakan claimed the scalp of Kohli, who was taken by Karunaratne at slip eight short of a half-century, in a strong Sri Lanka fightback.
Vishwa Fernando, playing his second Test a year after his debut, also snared Ravichandran Ashwin (31) caught behind at full stretch by Niroshan Dickwella to give Sri Lanka another late lift.
|Not a tragedy if Italy miss World Cup, says Zola|
|Milner-Skudder undergoes surgery on injured shoulder|
|Hummels: Bayern players contributed to Ancelotti´s sacking|
|Dzeko considers Chelsea among Champions League contenders|
|Joshua desperate to show new skills to build a legacy|
|Cavani doesn´t need to be friends with Neymar|
|Te´o likely to miss England´s November internationals with ankle injury|
|Ozil and Sanchez committed to Arsenal, Mertesacker claims|
|Gatland targets Super Rugby role after 2019|
|Hazlewood confident over Ashes fitness despite missing Sheffield Shield opener|
|Don´t stress it - De Bruyne relaxed over initial Man City contract talks|
|Kerr laments Green injury after Warriors lose season opener|
|Nagelsmann´s path will lead to Bayern, says Heynckes|
|Stones satisfied with strong Manchester City showing|
|Rockets stun Warriors, Hayward suffers gruesome injury in Celtics loss|
|Irving and LeBron shaken by Hayward injury|
|Yankees level Astros series, Dodgers take 3-0 lead|
|Aldridge praises Popovich after Spurs renewal|
|Redknapp: Spurs boss Pochettino could manage Real Madrid|
|Wallabies to host three-Test series against Ireland|
|That will be hard to beat – Klopp revels in record win|
|Cowboys RB Elliott eligible to play after latest court ruling|
|Bulls´ Mirotic out indefinitely after fight with team-mate|
|Spurs showed they can compete with elite - Pochettino proud after Madrid draw|
|Ballon d´Or? We all know Messi is best, says Valverde|
|Players rally around Hayward after sickening injury on Celtics debut|
|Celtics´ Hayward suffers ankle fracture|
|He´s getting better – Zidane backs Benzema|
|Napoli star Insigne unsure if he´ll be fit to face Inter|
|Manchester City can win Champions League, says Napoli boss Sarri|
|Iguodala out of Warriors´ season opener against Rockets|
|LeBron to play in Cavs´ opener against Celtics|
|Sharapova and Kerber suffer first-round exits|
|Berizzo plotting Sevilla´s revenge after Spartak Moscow humiliation|
|Porto boss Conceicao defends Casillas omission|
|We know it´s difficult now, admits Dortmund boss Bosz|
|Krajinovic denies Rublev happy homecoming in Moscow, Ferrer through in Antwerp|
|It´s tough but it´s not over - Van Bronckhorst|
|Monaco know it will be difficult to qualify now, says Sidibe|
|I don´t know what happened - Sarri bemused by Napoli´s slow start|
|We are growing consistently, insists upbeat Zidane|
|Holders Tenerife respond with win over Ludwigsburg|
|I want to stay at Saracens – McCall not interested in Test job|
|Guardiola hails ´perfect´ City after beating ´one of the best´|
|Real Madrid can´t be happy with Tottenham draw, says Navas|
|Klopp heralds counter-pressing as Liverpool run riot against Maribor|
|Liverpool break record in Maribor thrashing|
|City style fades but newfound steel gives Guardiola reason to believe|
|Ederson kept us in it - Walker relieved after City´s second-half wobble|
|Emery backs ´intelligent´ Mbappe to respond|
|APOEL 1 Borussia Dortmund 1: Sokratis header spares Burki´s blushes|
|Feyenoord 1 Shakhtar Donetsk 2: Bernard brace piles pressure on Van Bronckhorst|
|Monaco 1 Besiktas 2: Tosun double pours more misery on Jardim´s men|
|Spartak Moscow 5 Sevilla 1: Clinical second-half show stuns woeful Spaniards|
|RB Leipzig 3 Porto 2: Hosts claim maiden Champions League victory|
|Maribor 0 Liverpool 7: Salah and Firmino doubles inspire rampant Reds|
|Manchester City 2 Napoli 1: Guardiola´s men see off Serie A leaders despite second-half scare|
|Real Madrid 1 Tottenham 1: Ronaldo on target as Lloris heroics earn point|
|´Older, better´ Dzeko feeling good on return to England|
|Kubica has ´another productive day´ of Williams testing|
|Persepolis 2 Al Hilal 2 (2-6 agg): Kharbin at the double as Al Hilal reach final|
|Monaco without Ghezzal and Jovetic for Besiktas clash|
|Hafeez recalled for Sri Lanka T20 series|
|De Bruyne agent eyes Neymar, Mbappe-style wages for Manchester City star|
|Mertesacker not interested in Deeney’s ´cojones´ comment|
|Craig Shakespeare sacked by Leicester City|
|North set to miss Wales´ autumn series with knee injury|
|Messi is the best in the world, says Paulinho|
|Valverde ready for ´emotional´ game against old boys OIympiacos|
|Nadal to miss Swiss Indoors Basel due to knee injury|