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.
|Athletics´ Chapman undergoes procedure on left shoulder|
|Marcelo: Real Madrid miss Ronaldo|
|Ronaldo right about Juventus team spirit – Allegri|
|Klopp: I´m not the pope of football tactics|
|Stade beat Ospreys on emotional Chauvin tribute night|
|Ligue 1 survival bid a marathon not a sprint for Monaco, as club appoints distance runner|
|Vertonghen eyeing Spurs future beyond 2020|
|De Bruyne injuries could be a blessing for City, says Guardiola|
|Emery prepared to face Arsenal´s centre-back crisis|
|Ulster complete Scarlets double, Exeter gain Gloucester revenge|
|Sheffield United 1 West Brom 2: Baggies comeback boosts automatic promotion push|
|Del Potro back on court following knee injury|
|Canelo v Fielding: Rocky ready to write his own fairytale in New York|
|Boca part company with Schelotto after Copa Libertadores loss to River|
|Canelo v Fielding: Tale of the tape|
|Juventus defender Cancelo has knee surgery|
|Canelo v Fielding: Alvarez and Rocky make weight in New York|
|Spalletti does not fear another mid-season crisis at Inter|
|Salah headlines CAF Player of the Year shortlist as Koulibaly misses out|
|Beckham Jr. out of Titans clash|
|Lipsky hits the front at Leopard Creek|
|Pederson coy over Wentz back injury|
|Liverpool ´not really likely´ to be active in January window, reveals Klopp|
|Always on the move and unpredictable - Pavard reveals surprising choice over toughest opponent|
|We need to get back to respect - Lampard alarmed by hate in football|
|Giles returns to England to replace Strauss as director|
|Hansen has no issue with Milner-Skudder Toulon switch|
|Juventus to rest Ronaldo after Torino showdown|
|Titmus strikes gold again as world records tumble in Hangzhou|
|Malinga to captain Sri Lanka in New Zealand|
|Rivaldo would like ´excellent´ Isco at Barcelona|
|United a long way from Mourinho´s vision|
|´Klopp denies an answer!´ - Liverpool boss dismisses questions about ´world-class´ Pogba|
|Returning Nowitzki ´so tired´ after making NBA history|
|Aguero and De Bruyne in contention for Manchester City v Everton|
|Simeone has no plans to cash in on Costa|
|Canelo v Fielding: Alvarez´s greatest nights|
|Fabregas: Chelsea being unfairly scapegoated over racism allegations|
|Crisis? What crisis? Klopp focuses on defensive solutions for United clash|
|Hope cannot inspire Windies as Bangladesh cruise to series win|
|Benitez picks up Premier League Manager of the Month award|
|Chavez, Marquez and Canelo - Mexico´s greatest multi-weight world champions|
|Bale set to miss Real Madrid v Rayo Vallecano|
|Robben out until January as Bayern look to avoid serious injury|
|Milan avoid UEFA ban in FFP punishments.|
|Mourinho compares Liverpool to ´an amazing house´ but insists trophies matter|
|Brisbane Roar 2 Melbourne Victory 4: Muscat´s men hit A-League summit|
|Bumrah confident second Test is ´in the balance´ after India recovery|
|Isco gesture was for a corner or foul, claims Solari|
|Harris leads Australia into ascendancy on day one|
|ATP announces candidates to host future Finals|
|Ronaldo: Juventus fans refuse to lose to Torino|
|Hero Rivers feared he had cost Chargers in KC|
|Williams would welcome Llorente back to Athletic Bilbao|
|Liverpool v Manchester United: Minding the gap|
|Milan elimination unjust, fumes Leonardo|
|Paul hails ´sick´ Harden after record-breaking display|
|Liverpool v Manchester United: Salah, Mane and Firmino v Rashford, Martial and Lukaku in Opta number|
|Canelo open to GGG trilogy as he chases place in Mexican history|
|The big Friday Premier League quiz|
|Harden posts record fourth 50-point triple-double in win over Lakers|
|Barcelona squad happy with Dembele, says Alba|
|Chargers rally past Chiefs to clinch playoff spot|
|WATCH: Chargers top Chiefs on dramatic two-point conversion in final seconds|
|Suns owner Sarver committed to keeping team in Phoenix|
|Chargers WR Allen leaves with injury after near-spectacular catch|
|Socceroos not giving up on Mooy for Asian Cup|
|Cooper says Raiders owner wanted to trade him to Cowboys|
|Pochettino jokes Levy is ´worried´ about losing him|
|Barcelona would welcome Morata – Alba|