Angelo Mathews’ team had already struggled with the bat after being dismissed for 254 as teenager Aaron Beard bagged four wickets on his first-class debut.
And they fared no better with the ball as Jaik Mickleburgh, who scored 109, and Tom Westley, who hit 108, smashed the tourists to all corners of Chelmsford.
Essex reached 412 for four declared after Ravi Bopara, 87 not out, and Dan Lawrence, 57 not out, took over the assault of the chastened Sri Lanka attack.
To make matters worse, Sri Lanka then closed day two of the three-day match on 42 for two.
Kaushal Silva fell lbw to Beard victim and then Kusal Mendis went to a late slip catch off Matt Dixon.
A bowling attack described by Sri Lanka chief selector Sanath Jayasuriya as the best in the world appeared some way short of that billing, with one more outing scheduled before the first Test at Headingley next week.
Westley joined opener Mickleburgh at start of play, following the departure of nightwatchman Tom Moore the previous evening and the pair put on 132 in 35 overs for the third wicket. (Courtesy AFP)