Sri Lanka closed 209 runs ahead of England at 84-5 after an eventful second day of the first Test in Galle which saw 17 wickets fall.
They took their overnight 289-8 to 318, with Mahela Jayawardene last out for 180, as James Anderson claimed 5-72.
England then subsided against left-arm spinner Rangana Herath, who took 6-74, and were all out for 193. Only Ian Bell, with a classy 52, passed 30.
Graeme Swann, wicketless in the first-innings, revived fortunes with 4-28.
Quite how England have even a glimmer of hope in this match is difficult to fathom following another inept batting display, which was horribly reminiscent of their deficiencies in the 3-0 whitewash by Pakistan in the United Arab Emirates earlier this year.