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.
|Premier League title City´s to lose, but Sterling wary of United charge|
|Barcelona´s Deulofeu a Clasico doubt after training injury|
|Bills QB Taylor to start v Dolphins|
|O´Mahony and Furlong sign new IRFU contracts|
|Salah ´is a player I rate a lot´, says Zidane|
|Allardyce lauds ´invaluable´ Rooney|
|Ramos fit for Club World Cup final|
|Lille sack Bielsa to end failed experiment|
|Manchester United job like Real Madrid, says Mourinho|
|Fernandinho is much better than I was, Guardiola claims|
|That Harry Kane team? – I´m over Guardiola dig, says Pochettino|
|Tuilagi and Toomua return to Leicester line-up|
|Mourinho open to January moves as Griezmann rumours swirl|
|Berizzo set for Sevilla return after cancer surgery|
|Malinga left out of Sri Lanka´s T20 squad|
|Manchester City will not go unbeaten in Premier League - Guardiola|
|Man City are the best – Pochettino braced for Spurs´ toughest test|
|Kristaps Porzingis injury update: Knicks big man says knee ´shouldn´t´ be bad|
|Conte hopeful over David Luiz´s ´serious´ knee injury|
|Neymar not an injury risk after Brazil trip - Emery|
|Bailly to miss three months due to ankle surgery|
|Klopp defends Liverpool rotation policy|
|Arsenal fan Prince Harry´s wedding day to clash with FA Cup final|
|He´s one of the best – Simeone showers Oblak with praise|
|Juventus won´t sell in-demand Pjaca, agent claims|
|Bolasie in line for Everton return after long-term injury|
|Bedene to switch back from Britain to Slovenia|
|Maradona told Real Madrid to sign Mbappe|
|Samuels out of NZ tour, Narine to miss T20s|
|Sydney FC 3 Melbourne City 1: Champions come from behind to go eight points clear|
|Red-hot Salah wins Player of the Month|
|Heynckes unaware of reported Sanches loan termination|
|Maradona: I´d have won more Ballons d´Or than Ronaldo and Messi|
|Khawaja pleased to restore parity in Perth|
|Bairstow enjoys playful celebration of crucial century|
|The Ashes Round-up: Smith leading by example again|
|Wenger confirms Wilshere contract talks imminent|
|Sensational Smith leads Australia fightback|
|We´ve never been approached by Man United – Wenger rejects Ozil reports|
|Joshua ´absolutely´ capable of unification, says Klitschko|
|Mathews fit for India-Sri Lanka series decider|
|Lewandowski demands focus ahead of Christmas|
|Fury not rushing back to take on Joshua|
|Klopp right to rotate at Liverpool – Neville|
|Overton strikes twice for England in Perth|
|LeBron´s 59th triple-double leads Cavaliers past Lakers|
|Jets offensive coordinator admits surrender in blowout loss to Broncos|
|Osweiler helps Broncos past Colts|
|England collapse to be all out for 403 in Perth|
|Donnarumma plays down Milan exit rumours|
|Barkley could leave in January – Allardyce|
|Siemian suffers shoulder injury, Osweiler in for Broncos|
|Pulisic voted youngest-ever male USA player of the year|
|Griezmann will be allowed to leave – Simeone|
|Steelers LB Shazier has begun rehabilitation process|
|Guardiola appears to aim another dig at Mourinho|
|Vardy relishing Fleetwood return|
|Pau stay perfect with win over Agen|
|USB joking? Klitschko stick and robe sold for mega money|
|Almiron blocked from becoming Las Palmas coach|
|Ligue 1 adopts VAR from next season|
|Calabria extends AC Milan contract|
|Everton give new deals to Calvert-Lewin, Holgate & Kenny|
|Gooch backs Cook to rediscover England form|
|Itoje could return before Six Nations|
|Under-fire Hughes promises results will come for Stoke|
|Mourinho asked to explain pre-Manchester derby comments|
|Stoger sets Dortmund end of year target|
|Dyche: No swaggering from high-flying Burnley|
|Watzke plays down Nagelsmann rumour as Dortmund plan for 2018|