The day began with Sri Lanka resuming their first innings on 162-1 and would have been hoping to get up to England's first innings score, but that didn't happen. The hosts fought back and dismissed Sri Lanka for 288, with Steven Finn and Chris Woakes taking three wickets each.
England then began their second innings after tea and things didn't start very well as they were reduced to 50-3 but finally ended the day on 109-4, with Alex Hales 41 not out.
England bowlers dominate morning session
Sri Lanka began day three on 162 for one in their first innings but, straight away, England got to work and put them under pressure.
In the second over of the day Woakes trapped Kusal Mendis LBW for 25 to break his second wicket partnership of 54 with Kaushal Silva.
Silva didn't last much longer as Stuart Broad got in on at act, with Silva falling to the paceman for 79; once again failing to push on for three figures.
The wicket of Silva brought Sri Lanka captain Angelo Matthews to the crease, but he wasn't there for long as Woakes got him out edging to slip for three.
Dinesh Chandimal came in at number six and he and Lahiru Thirimanne briefly started to build a partnership but it was ended on 33 as Finn got Chandimal LBW for 19.
Finn got in on the act again a few minutes before lunch as he got Thirimanne out for 17 caught in the slips.
The session ended with Sri Lanka on 218 for six with Kusal Perera 12 not out and Rangana Herath two not out. England totally dominated the full session and were looking to wrap things up after lunch.
Herath and Perera had other ideas though, as after lunch both came out swinging and they took their partnership past 50 with England struggling for a breakthrough in the first hour.
England wrap up Sri Lanka's first innings before Tea
England did though finally get the breakthrough after drinks when Broad bowled Herath for 31 to break the partnership of 71 for the seventh wicket.
Perera didn't last much longer either as he edged James Anderson behind for 42 before Anderson then removed Suranga Lakmal for a duck.
Woakes came back into the attack and, with his first ball, he got the final wicket of the innings to bowl Sri Lanka out for 288 as Shaminda Eranga edged one behind to give Woakes his third wicket.
The wicket of Eranga was the final action of the afternoon session as England were 128 runs ahead after both first innings were finished.
Pradeep takes three late wickets to give his side a chance
England began their second innings after tea with Nick Compton opening with Hales due to Alistair Cook being unable to bat until tomorrow after being struck hard on the knee.
Compton and Hales were going well until their partnership was broken on 45 when Eranga got the wicket of Compton for 19 caught behind.
Joe Root moved up to number three due to Cook's absence, but didn't last too long as he was bowled by Nuwan Pradeep for four and then next ball James Vince was out bowled for a first-ball duck to leave the score on 50 for three.
The wicket of Vince brought man of the moment Jonny Bairstow to the crease with his side in trouble, though he and Hales went about building a partnership. But just as the partnership reached 51, it was ended by Pradeep who bowled Bairstow for 32.
Finn came in as night watchman to see out the remainder of the day's play and he did this successfully. England ended the day 109 for four, 237 runs ahead of Sri Lanka.