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.
|Spieth praises U.S. Open champion Koepka|
|Loftus-Cheek will consider Chelsea future|
|Jorginho deal not done yet - City|
|Amrabat slams Geiger over alleged shirt request|
|Neymar targets improvement against Costa Rica|
|Confident Spieth ready to relish ´Car-nasty´ Open|
|All Blacks ring the changes for series finale with France|
|Sampaoli yet to decide on Argentina XI to face Croatia|
|Bale needs Real Madrid assurances, says agent|
|What game were you watching? - Costa bites back at journalist|
|Catalans capitalise on Leeds collapse to secure victory|
|Ronaldo facial hair inspired by Quaresma joke|
|This is not football - Carvajal criticises Iran tactics|
|Costa strike keeps 2018 World Cup waiting for first goalless draw|
|FIFA fines Mexico over discriminatory chants|
|Suarez announces wife´s pregnancy after World Cup heroics|
|Fortune favours Spain´s ´Supermen´ as luck proves to be Iran´s kryptonite|
|Hubert Green, U.S. Open winner who ignored death threat, dies at 71|
|Osaka injured in Birmingham, Kerber crashes out in Mallorca|
|Iran 0 Spain 1: Costa goal breaks stubborn resistance|
|Cilic battles back but Wawrinka bows out at Queen´s|
|Messi the greatest but Croatia will play to beat Argentina, says Dalic|
|Thiem stunned by Sugita in Halle|
|Salah rejects talk of rift in Egypt camp|
|England Women follow up men´s ODI record with T20I high|
|Southgate laughs off dislocated shoulder: Better me than one of the players!|
|World Cup hosts Russia qualify as Egypt make early exit|
|Pique wins 100th Spain cap in Iran World Cup clash|
|Serbia v Switzerland: Kolarov not interested in playing for a draw|
|Rakitic wary of ´uber-motivated´ Messi|
|Not my finest moment - Mickelson issues apology after U.S. Open controversy|
|´Best in the world´ Messi the victim of unfair treatment, says Sampaoli|
|Suarez off the mark but resurgent Russia will not fear stuttering Uruguay|
|Uruguay 1 Saudi Arabia 0: Centurion Suarez strikes to send La Celeste, Russia through|
|Peru boss Gareca not a fan of ´novelty´ VAR|
|Nigeria v Iceland: Hallgrimsson anticipates another intense battle|
|Griezmann to face Peru despite ankle issue and struggles – Deschamps|
|Leicester sign Norwich´s Maddison|
|Leinster face Wasps, Bath, Toulouse in Champions Cup draw|
|2019 Ashes to start World Test Championship|
|Wizards to face Knicks in London next season|
|Vettel eyeing Paul Ricard profits - French GP in numbers|
|Malaga turn to Muniz once again|
|Amrabat: VAR doesn´t work if you do not use it|
|Suarez earns 100th Uruguay cap|
|You´ve got to look beyond football - Denmark chip in to fly new father Knudsen home|
|Neymar returns to Brazil training after injury scare|
|No passports required - Burnley´s 51-year wait for European tie sees Clarets draw... Aberdeen|
|Huddersfield bring in Bacuna to boost midfield|
|Forget the GOAT and the goatee - just enjoy Ronaldo and Messi|
|Ronaldo bearing down on Daei after going past Puskas - The top five goalscorers in international foo|
|Portugal 1 Morocco 0: Record-breaker Ronaldo sends Renard´s men out|
|Halep pulls out of Eastbourne International|
|Brazil v Costa Rica: Coutinho ready for more Selecao toil|
|Muller and Bierhoff dismiss reports of German disharmony|
|Mooy can play at a higher level, says Socceroos boss Van Marwijk|
|Remarkable Ronaldo breaks Puskas´ European record|
|Belgian Grand Prix deal agreed until 2021|
|Isco: I´m not going to speak to Ronaldo again!|
|Slater expects to be fit for Origin II|
|Curran and Overton added to England ODI squad|
|Hussey fears Australia will be left with ´mental scars´|
|Fabianski swaps Swansea for West Ham|
|Loftus-Cheek ready to replace Alli|
|England are a team now - Rashford|
|Lazaridis calls for Cahill to start against Denmark|
|Arzani and Ryan can play at the highest level, says Bosnich|
|Dust (Ja)pan and brush: Blue Samurai fans clean up in Saransk|
|Lodge reaches agreement over New York attack|
|Gerrard can become a strong manager - Arena|