The tourists, needing to bat out the fifth and final day for a draw after being set an improbable victory target of 350, recovered from their lunch score of 125-5 to post 209-6 by tea at the Asgiriya stadium.
Bell put on 49 for the sixth wicket with debutant Ravi Bopara (34) after England were struggling at 90-5 and then a valuable unbeaten 70 for the seventh with wicket-keeper Matt Prior.
Prior went to tea on 35 not out with England needing to hold out in the final session to force a draw in the three-Test opener.
Four years ago, Michael Vaughan's men made 285-7 to draw the Test here after being set a target of 368.
England, who lost four wickets in the morning session after resuming at their overnight score of 9-1, had just one dismissal in the post-lunch session.
Off-spinner Muttiah Muralitharan, who claimed 6-55 in the first innings on his way to becoming Test cricket's leading wicket-taker, failed to take a wicket in 25 overs in the second innings.
The damage was done by the seamers as veteran left-armer Chaminda Vaas, playing his 100th Test, claimed the first three wickets of the innings and Dilhara Fernando chipped in with two.
Vaas, who dismissed opener Alastair Cook on Tuesday evening, put England on the back foot by removing captain Vaughan in the morning's fourth over.
Vaughan groped for 25 balls to score five when he failed to take his bat out of harm's way and edged the outswinger to wicket-keeper Prasanna Jayawardene.
In his next over, Vaas bowled nightwatchman James Anderson for 11 as England slipped to 27-3.
Kevin Pietersen showed no discomfort from a broken finger in his right hand, sustained while batting in the first innings, as he attacked from the start with four superbly-timed boundaries.
Pietersen hit Lasith Malinga to the straight field, drove Vaas through the covers and then welcomed Fernando with two consecutive fours.
Fernando, however, had the last laugh as Pietersen edged a ball that kept low on to his stumps and departed for 18.
Fernando, the third seamer in the home team after Vaas and Malinga, claimed his second wicket soon after when Paul Collingwood (16) failed to keep a cover drive down and was snapped up by Kumar Sangakkara.
England lost Bopara in the fourth over after resumption when he was trapped leg-before by Sanath Jayasuriya, who is playing his last Test match.