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.
|Hart ready to leave City to revive career|
|Puel shuts down Schmeichel transfer speculation|
|Four-way tie at Barbasol Championship as Lincicombe misses cut|
|Lenglet happy not to face Messi|
|Tuchel keen to get PSG stars back after friendly defeat|
|Pulisic signing would interest Klopp|
|Whatever b******t you say, no one forgets – Klopp defends spending comments|
|Usyk outclasses Gassiev to make cruiserweight history|
|Pella books Cecchinato meeting in Umag, Ramanathan´s Newport run continues|
|Kisner expects nothing but exchange of ´horror stories´ with housemate Spieth|
|Inter new boy Lautaro Martinez denies Zenit in six-goal thriller|
|McIlroy eyeing early gains to apply scoreboard pressure|
|The Open 2018 diary: Spieth´s close shave|
|Salah is fully recovered and full of joy – Klopp|
|De Laurentiis accuses Sarri of trying to sign whole Napoli team|
|Lewis Hamilton explains German GP woes|
|O´Driscoll hails ´Test match animal´ Warburton|
|Spieth relishing prospect of Tiger tussle at Carnoustie|
|Sanches pushing for Bayern second chance - Kovac|
|Put on the Sunday red and enjoy Tiger´s ride regardless of Carnoustie outcome|
|Flawless Spieth takes share of Open lead after Tiger winds back the years|
|PSG´s Tuchel to be patient with World Cup stars Neymar, Mbappe & Cavani|
|Sanchez joins United tour in LA after visa issues|
|Catalans crush Salford to confirm Super League safety|
|Hamilton not giving up despite Hockenheim heartbreak|
|Spieth surges into Open Championship lead|
|Dumoulin is our biggest threat – Froome|
|Sane: Low gave me good reasons for World Cup snub|
|Tiger Woods in the hunt and loving it at The Open|
|Vettel delighted with German GP pole performance|
|Deschamps lauds intelligence of ´extraordinary´ Mbappe|
|Thomas maintains advantage as Fraile powers to stage victory|
|Woods sets clubhouse target, Kisner edges back in front|
|Bayern Munich 3 Paris Saint-Germain 1: Sanches strikes in ICC clash|
|Dost re-signs with Sporting CP after initially rescinding contract|
|Impressive Lions see off Jaguares to seal Waratahs semi|
|I´ll show Mourinho I´m ready, says United´s Pereira|
|Fognini sets up final clash with Gasquet|
|Injury ends Bouchard´s Swiss hopes, Sevastova through in Bucharest|
|That didn´t Work-u...race leader pulls up short of 3000metre finish|
|Prowling Tiger Woods on Open charge as Spieth joins leaders|
|Federer will struggle away from Wimbledon - Henman|
|Hamilton expecting tough Sunday at Hockenheim|
|Spalletti expects Icardi, Perisic to stay at Inter|
|Vettel smashes lap record to take Hockenheim pole after Hamilton woe|
|Warner targets Australia recall after Darwin debut|
|Rose: Open Sunday will be ´interesting´ after 64|
|Hamilton out of German GP qualifying as Mercedes falters|
|Pogba, Mbappe, Griezmann? Deschamps mulls Ballon d´Or contenders|
|Farah concussed on 250th Wests game as Tigers stun Souths|
|Waratahs overrun Highlanders in stunning second-half fightback|
|Rose scores record-equalling 64 to jump into Open contention|
|Moreno hails Liverpool´s recruitment drive as ´top, top players´ arrive|
|AC Milan elect new board with CEO Fassone out|
|Sri Lanka grind sorry South Africa into the Colombo dirt|
|Mina ready to reject offers for Barcelona stay|
|Guardiola tells Sane to use World Cup snub as motivation|
|Golovin´s ex-team-mate Chepchugov drops hint over Chelsea move|
|Reed & Rose make early charges on Carnoustie ´moving day´|
|Sancho ´had a point to prove´ in Dortmund´s win over Manchester City|
|Li hits back at AC Milan owners Elliott as bitter split continues|
|Crusaders cruise past Sharks to book Hurricanes semi-final|
|Rabiot would be a great signing for Barcelona – Xavi|
|JaVale McGee: Lakers are going to be ´one of the most fun teams ever´|
|Dolphins owner Ross: National anthem policy a ´placeholder´|
|Boga leaves Chelsea for Sassuolo|
|Schurrle in talks to leave Borussia Dortmund|
|Guardiola happy with Mahrez and Man City despite loss|
|Dodgers top Brewers in Machado´s debut|
|Raptors GM apologises to DeRozan after Spurs trade|