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.
|Ramos highlights animosity towards Madrid after red card|
|Boldin in shock NFL retirement after joining Bills|
|Lakers respond to tampering allegations surrounding George|
|Baghdatis wins through, Dolgopolov suffers shock loss|
|Mourinho tells Rashford to embrace boo boys|
|Lucic-Baroni battles in New Haven, Cornet cruises|
|Zidane wants no more changes to Madrid squad|
|Pastore rules out leaving PSG in swap for Mbappe|
|Messi will sign Barcelona contract – Fernandez|
|Real Madrid captain Sergio Ramos equals LaLiga record for red cards|
|Farah: I´ve run my last race for Great Britain|
|Stenson claims Wyndham Championship for first win of season|
|Spalletti eyes improvement despite convincing Inter win|
|Montella pleased with Milan´s winning start|
|I can improve - Neymar wants more despite stunning Parc des Princes bow for PSG|
|Valverde praises Barca stand-ins after opening win|
|Deportivo La Coruna 0 Real Madrid 3: Bale nets as champions make confident start|
|Dimitrov downs Kyrgios to claim first ATP 1000 crown|
|Celtic star Tierney destined for Premier League, says Adam|
|Deulofeu dedicates Barca win to victims of Las Ramblas attack|
|Guardiola not worried over City´s Everton struggles|
|Inkster revels in USA playing free and loose in Solheim Cup triumph|
|Paris Saint-Germain 6 Toulouse 2: Neymar shines on Parc des Princes debut as Verratti sees red|
|Australia overcome Iran to clinch FIBA Asia Cup|
|Crotone 0 AC Milan 3: Cutrone and Suso star in sizzling start|
|Inter 3 Fiorentina 0: Icardi double condemns Pioli to miserable return|
|Barcelona 2 Real Betis 0: Deulofeu on song as Valverde makes winning start|
|USA hold off Europe to successfully defend Solheim Cup|
|David Luiz and Bakayoko branded ´amazing´ by Conte as Chelsea beat Tottenham|
|Halep steamrollered by Muguruza to miss out on top ranking once more|
|No Wembley worries for Pochettino despite Spurs setback|
|Desire of champions still in Chelsea´s hearts, says Conte|
|Manchester City´s Mendy hails Batshuayi own goal as #bulletheader|
|Chelsea match-winner Alonso hails champion spirit after stunning Spurs|
|Bayern drawn against RB Leipzig in DFB-Pokal|
|Gronkowski delighted after playing first Patriots pre-season game since 2012|
|Big-spending Everton ´expecting to win and win´ - Pickford|
|Welcome to AC Milan - Kalinic´s arrival confirmed|
|Kohli hopes to keep Dhawan in his ´happy zone´|
|Tottenham 1 Chelsea 2: Awesome Alonso ensures more Wembley woe for Spurs|
|West Brom appeal against Robson-Kanu red card|
|Monchi focused on signings not sales at Roma amid Cuadrado links|
|Mo Farah seals 3000m victory in final UK track appearance|
|Injured Cronje replaced by Vermaak in Springboks squad|
|Wagner lauds ´totally important´ Huddersfield wins|
|Lampaert masterfully sprints to victory as Nibali cuts Froome´s advantage|
|Koeman believes Everton can exploit Manchester City defence|
|Electric Dhawan´s ton and Sri Lanka collapse put dominant India ahead|
|Huddersfield determined to make an impact, says Ince|
|Andone comfortable at Deportivo but tempted by Burnley move|
|Former Springbok Spies retires from rugby aged 32|
|Otaegui mounts stunning finish for first European Tour title|
|Fekir: Halfway line wonder goal was about instinct|
|Salihamidzic impressed by Bayern´s new boys|
|Anderson and Broad: England´s deadly duo in Opta numbers|
|Shakespeare expecting Vardy to be fine after knock|
|Bangladesh recall Mominul as Mosaddek replacement|
|Huddersfield Town 1 Newcastle United 0: Fierce Mooy strike sees flying start continue|
|Gullit calls on Conte to apologise to Chelsea exile Costa|
|´Incomprehensible´ Keita is like two players - Heidel|
|Nothing´s off the table - Ward confident he could beat Joshua|
|Kompany ready for next instalment of Rooney rivalry|
|Watzke withering over Barca´s role in Dembele soap opera|
|World number one or 500, it doesn´t matter to Kyrgios|
|Hamburg´s Muller suffers torn ACL celebrating winning goal|
|Iniesta casts doubt on Barca future|
|Hansen, Read and Carter lead tributes after death of All Blacks icon Meads|
|Morata wants to ´make an explosion´ with Chelsea|
|Late May try all but ends Canberra´s Finals hopes|
|I remember one day he started shooting the journalists - Pochettino recalls Maradona mayhem|