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.
|Bennett backs New Zealand to recover from World Cup exit|
|No Samoa donation from England squad - Borthwick|
|Conte pleased to take pressure off Atletico clash|
|Success in Europe will help Milan´s league form, Montella claims|
|Bauza sacked by Saudi Arabia|
|Browns´ Josh Gordon returns to practice|
|Azarenka confirms place at ASB Classic|
|Willian: For me, it was a penalty|
|Akinfeev keeps first Champions League clean sheet since November 2006|
|Messi rested by Barcelona side for Juventus clash|
|CSKA Moscow 2 Benfica 0: Goncharenko´s men boost progression hopes|
|Qarabag 0 Chelsea 4: Hazard, Willian lead Blues into last 16|
|Wood not giving up hope of Ashes role|
|If he´s fit, he will go – Wenger backs Welbeck for World Cup call|
|Gatland delighted by North´s return|
|Pressure the key to beating All Blacks, says Gregan|
|FIA president Todt to run unchallenged for re-election|
|Niasse banned over diving charge after FA rejects Everton appeal|
|Sri Lanka want Tigers head coach Hathurusingha|
|F1 Raceweek: Hamilton hunting more records - Abu Dhabi GP in numbers|
|North to leave Saints and return to Wales|
|Real Madrid´s Carvajal faces UEFA investigation over APOEL booking|
|Dimitrov never lost belief in own ability|
|Everton fined €30,000 over fan trouble against Lyon|
|No change in Everton manager hunt, says Unsworth|
|Chiellini to miss Barcelona match with thigh injury|
|McIlroy to make return in Abu Dhabi|
|Maitland among four Scotland changes for Wallabies clash|
|Former Everton and Nigeria striker Yakubu retires|
|Robinson talks up England World Cup chances|
|The Ashes: Series predictions vary wildly ahead of first Test|
|Liverpool looking into claims of Seville police assault against fans|
|Smith surprised by Australia selections - Cowan|
|Toure hails Foden as the ´future´ of Manchester City|
|Record Ronaldo nomination as Real Madrid dominate UEFA Team of the Year candidates|
|Williams call on Kubica for Abu Dhabi testing|
|Heynckes stay is ´best solution´ for Bayern, says Robben|
|Racing allow O´Gara to join Crusaders|
|Courtois parks Chelsea contract talks|
|Parker team make ´final offer´ for Joshua fight|
|Wigan´s two-goal Colclough makes mad dash to witness birth of son...in full kit!|
|Sevilla boss Berizzo diagnosed with prostate cancer|
|Hollioake urges England to grind down ´fragile´ Australia quicks|
|Manchester United move still a possibility for Atletico star Griezmann|
|Carragher slams Liverpool for playing ´like children´ in Sevilla collapse|
|Replacing you might not be a great idea! – Buffon grateful for Rakitic tribute|
|Messi closes on century but Pogba must do more – Champions League in Opta numbers|
|Memorable Ashes Moments: Oh my Broad! Stuart stuns Australia with 8-15|
|Skoko wants Australian coach as Arnold emerges as Postecoglou replacement|
|Everton yet to make contact with Van Gaal|
|Ball wins fitness battle to earn England selection for Ashes opener|
|Aussies sweating on Marsh fitness|
|Lakers rally past Bulls|
|That´s not how I´d want my players to act - Root bemused by Lyon|
|MLS Review: Sounders a step closer to final, Crew and Toronto in stalemate|
|Earl suffers ACL injury as NRL return is put on hold|
|Ben Yedder trolls Liverpool after dramatic Sevilla comeback|
|Maxwell called into Ashes squad as cover for Warner|
|´World class´ Insigne can´t be rested – Sarri|
|Smith: Australia considering replacement for Warner|
|I say one thing and you write something else - Angry Ronaldo brushes off media|
|Yankees All-Star Judge undergoes shoulder surgery|
|Griezmann needs support of Atletico and fans – Simeone|
|Monaco paid for mistakes in Champions League exit - Jardim|
|We had to rely on personal pride - Berizzo praises Sevilla´s stunning comeback|
|Championship Review: Coleman loses first Sunderland game, Fulham win nine-goal thriller|
|City fans get first sight of local star they crave in Phil Foden|
|Gunes wants more after historic Besiktas Champions League qualification|
|Allegri plays down Dybala-Messi comparisons|
|Extra rest helped Rose shine in Dortmund – Pochettino|