Roshen Silva steered Sri Lanka into a lead with a classy half-century after England looked destined to take a healthy advantage on day two of the second Test in Pallekele.
Sri Lanka were in trouble on 165-6 on Thursday but led by 46 at stumps after recovering to 336 all out.
Dimuth Karunaratne (63) and Dhananjaya de Silva (59) made half-centuries and Roshen top scored with a superb 85 after receiving support from the tail.
Jack Leach (3-70) and Adil Rashid (3-76) took three wickets apiece, while the tourists were also boosted by five penalty runs - taking their first-innings total up to 290 – awarded after Roshen was adjudged to have deliberately run short.
Sri Lanka added 84 runs for the last two wickets as they attempt to level the three-match series, with nightwatchman Leach successfully seeing off one over before the close.
Day 2, Stumps: Sri Lanka gain a first innings lead of 46 runs. SL 336 v ENG 290, 0/0 (1.0 Ovs) Roshen Silva 85, Dimuth Karunaratne 63, Dhananjaya de Silva 59 : Jack Leach 3/70, Adil Rashid 3/75. #SLvENG pic.twitter.com/0A63Zd7l9T— Sri Lanka Cricket (@OfficialSLC) November 15, 2018
Moeen Ali (2-85) struck in the third over of the day after Sri Lanka resumed on 26-1, Malinda Pushpakumara (4) giving Rory Burns a simple catch at midwicket.
Karunaratne played with great application for a deserved half-century and it took a moment of brilliance from Ben Stokes to run the opener out with a direct hit when the all-rounder only had one stump to aim at.
Sri Lanka were 139-4 at lunch after Stokes demonstrated his prowess in the field again with a brilliant instinctive one-handed catch at first slip when Leach drew an edge from Kusal Mendis (1).
Dhananjaya pulled Stokes for four to bring up his half-century and played with finesse before he was caught behind off Rashid, who generated huge turn to remove Angelo Mathews (20) in the same manner.
Roshen played with increasing authority in a tricky situation, but Sri Lanka were facing a big first-innings deficit when Niroshan Dickwella (26) was trapped leg before by Joe Root.
Dilruwan Perera became Leach's third victim just two balls after Roshen reached his fourth Test half-century at the start of the final session, but Akila Dananjaya offered support in a ninth-wicket stand of 56.
There was confusion when umpire Marais Erasmus deemed Roshen ran short on purpose at the non-striker's end before returning to other, as he and Dananjaya looked unsure if the ball touched the boundary ropes at third man.
He took that on the chin and dished out more punishment of his own, lofting Moeen for six before Rashid finally dismissed him to end the innings after Dananjaya fell for a brisk 31.
Leach played out an over from Dilruwan with confidence as Burns watched on at the other end, ensuring no further damage was done on a frustrating day for Root's side.
|Not good for my recovery! Hoddle delights in Spurs´ Champions League heroics|
|Harris backing Starc to fire in Perth|
|No fears over Atleti´s second-place finish for Simeone|
|Clippers buckled under Raptors pressure - Rivers|
|Icardi: Inter deserved to qualify|
|Team Sky future unclear as Sky opt to end involvement in cycling|
|PSG had to change mentality - Thiago Silva|
|Rockets make change, pick up win over Trail Blazers|
|Everything´s easier when you´ve got Messi – Miranda|
|From George Cross to Arsenal – Montemurro´s rise to make Gunners great again|
|Koulibaly challenges Napoli to win Europa League|
|Raptors star Leonard out against Clippers, may miss matchup with Warriors|
|Butler opens up about heated Timberwolves practice|
|Spurs achieved ´mission impossible´, says Pochettino|
|Dembele stunner pleases Barca boss Valverde|
|Van Dijk lauds ´fantastic´ Alisson|
|Van Dijk´s tackle on Mertens worthy of red card – Ancelotti|
|Klopp ´would have paid double´ for Alisson|
|Klopp: I don´t care about Madrid revenge mission|
|Tension and anxiety got to Inter, laments Spalletti|
|Tuchel hails magnificent PSG as Red Star win seals last-16 spot|
|Mbappe admits frank discussions inspired PSG´s Champions League progress|
|Klopp: Napoli had no answers to outstanding Liverpool|
|Pochettino proud of ´massive, massive achievement´ for Spurs|
|Barcelona equal Champions League record|
|Composed and controlled Liverpool see off Napoli to progress|
|Tenerife back to winning ways, AEK beat Hapoel|
|Howedes ´hurt´ after emotional Schalke return ends in defeat|
|Kane ´buzzing´ over ´not bad´ draw at Barcelona|
|Robertson hails Alisson´s ´unbelievable´ save as Liverpool progress|
|Red Star Belgrade 1 Paris Saint-Germain 4: Neymar brilliance helps secure Group C top spot|
|Inter 1 PSV 1: Icardi header not enough for the Nerazzurri|
|Liverpool 1 Napoli 0: Superb Salah sends Reds through|
|Club Brugge 0 Atletico Madrid 0: Simeone´s men miss out on top spot|
|Barcelona 1 Tottenham 1: Lucas rescues Spurs late on to secure progress|
|Monaco 0 Borussia Dortmund 2: Guerreiro double snatches top spot from Atletico|
|Butler´s groin strain ´nothing significant´ – 76ers coach Brown|
|Woakes, Curran among leading lights at IPL auction|
|Blue Jays release five-time All-Star Tulowitzki|
|Mourinho: Professionals care more than the fans|
|Casillas reaches 100 Champions League wins|
|Expansion franchise Cincinnati sign Garza, send Kamara to Rapids|
|Manchester City sign United States goalkeeper Steffen for reported £7m|
|Schalke 1 Lokomotiv Moscow 0: Russians miss chance for Europa League reprieve|
|Galatasaray 2 Porto 3: Terim´s men into Europa League after penalty drama|
|Jackman leaves Dragons role|
|Tottenham boosted as Barcelona bench Messi|
|Mane and Henderson in Liverpool XI to face Napoli|
|Mourinho shoots down question over how to get the best from Pogba|
|Ronaldo to start as Allegri aims to avoid Champions League big guns|
|Odriozola: I´m in love with Benzema, he´s the best number nine in the world|
|Vikings fire OC DeFilippo after loss to Seahawks|
|Marcelino suggests Valencia open to Batshuayi departure|
|Bottas to make rally debut in title-winning M-Sport Ford Fiesta|
|Kovac dismisses Pavard speculation|
|Yaya Toure leaves Olympiacos after just five appearances|
|Riise challenges Liverpool to banish Champions League disappointment against Napoli|
|We rallied around it - Durant on Green confrontation aftermath|
|Valencia ´p****d off´ with Fellaini´s controversial Young Boys winner - Soler|
|More must be done to combat racism at Premier League grounds – Chalobah|
|Napoli will not sack ´big signing´ Ancelotti if they miss Champions League qualification, says De La|
|Guardiola not interested in ´exceptional´ Saul|
|Shai gives Windies hope with thrilling ODI run chase|
|Ten Hag unsure whether to risk Ajax stars against Bayern|
|Erasmus to work with Bulls as Springboks assist Super Rugby sides|
|Paul Gascoigne pleads not guilty to sexual assault|
|Joshua is ´begging´ for unification fight, claims Wilder|
|Silva, Fernandinho add to Guardiola´s injury woes|
|Hosszu storms to 14th gold, Seto smashes Le Clos´ world record|
|Raheem is an incredible human being - Guardiola rallies behind City star Sterling|