Spinner Dom Bess took a five-wicket haul as Sri Lanka were bowled out for only 135 inside 47 overs, before the the tourists raced to 2-127 before stumps.
Zak Crawley (9) and Dom Sibley (4) both fell cheaply but Jonny Bairstow (47no) and Joe Root (66no) put together an unbeaten 110-run third wicket partnership to put England firmly in control.
Bess’ five wickets came after opening bowler Stuart Broad dismissed three of Sri Lanka’s top four batsmen, as the pair reducing the hosts to 3-25.
Broad had opener Lahiru Thirimanne caught by Bairstow for 4, before getting rid of Kusal Mendis caught behind for a second ball duck, making it four consecutive zero scores in Test cricket for him.
Kusal Perera was caught by Root off Bess for 20, before a 56-run stand between Angelo Mathews and captain Dinesh Chandimal offered hope for the Sri Lankans.
However, the pair fell in quick succession and Sri Lanka were unable to wrestle their way to a competitive score, bowled out for 135 amid a raft of poor reverse sweeps which led to criticism from commentators.
“You don’t get days much better than these in the subcontinent,” Broad told Sky Sports.
“Bowling a team out cheaply and getting close to them two down is fantastic.
“Bairstow and Rooty showed their class. They played with great calmness and composure, but playing their aggressive options in the way they wanted to.
“As day ones go, we’re delighted in the England camp but we know there’s a lot of cricket to be played.”
