The Sri Lankans, who collapsed for 82 in their second innings within 25 overs in the first of the three Tests in Cardiff last week, reached 127 for three when play was called off.
Andrew Strauss [ Images ] declared the England second innings closed at 335 for seven after Alastair Cook [ Images ] had completed his sixth century in his last nine Tests. It was also his third hundred in four innings after he fell four short of a century in the first innings.
Cook batted for more than five hours before he was finally stumped off left-arm spinner Rangana Herath [ Images ] for 106.
Kevin Pietersen [ Images ], out in single figures in both his previous innings in the series, played with all his old authority to reach his half-century from 85 balls.
He was dismissed by Herath 10 minutes before lunch for 72 by a ball which spun sharply out of the rough to knock back his off stump.
Ian Bell [ Images ] then played a delightful cameo as England forced the pace, stroking three boundaries from his first four deliveries, and finishing with 57 not out from 43 balls as wickets tumbled at the other end.
SANGAKKARA FAILS AGAIN
When Sri Lanka batted, Kumar Sangakkara [ Images ], opening the batting in place of captain Tillakaratne Dilshan [ Images ] who sustained a hairline fracture of his right thumb during an epic 193 in Sri Lanka's first innings, was again out cheaply.
Sangakkara (12) pushed Chris Tremlett tamely to Eoin Morgan [ Images ] in the covers. His average of 26.6 in English conditions is 30 runs fewer than his overall Test average.
Mahela Jayawardene [ Images ], with two previous centuries at Lord's, was caught at fourth slip by Pietersen off Stuart Broad [ Images ] for 25 from a ball which moved sharply away from the right-hander.
However, Billy Doctrove's [ Images ] decision was over-ruled when the batsman asked for a referral and the television replay showed the ball was missing off stump.
Strauss turned to Jonathan Trott for some variation and the part-time medium-pacer responded by dismissing the obdurate Tharanga Paranavitana [ Images ] lbw for 44 pushing forward to a straight delivery.
With 25 overs still remaining, Dilshan injured and a long Sri Lankan tail, Strauss turned to Steven Finn and Tremlett.
But the fast bowlers were unable to break through and the captains settled for a draw with 15 overs remaining. The final Test starts in Southampton on June 16.