Kumar Sangakkara made England pay for effectively giving him four reprieves as wickets fell at the other end on the first day of the second Test at Headingley on Friday.
Sri Lanka were 182 for five at tea after being sent into bat, with Sangakkara 67 not out.
The left-hander could have been run out on nought and was then caught behind on 16, only for neither bowler Liam Plunkett nor wicketkeeper Matt Prior to appeal.
He was given a further life on 27 when Prior dropped a routine catch, again off Plunkett, and missed again on 57, when Moeen Ali failed to hold a far tougher chance at backward point.
At tea, Plunkett had figures of three or 47 on his Yorkshire home ground but could have had three more wickets if England had taken their chances.
Sangakkara's innings was his third score in excess of 50 in this two-match series, after he made 147 and 61 in the drawn first Test at Lord's, and sixth in a row.
Sri Lanka got through the first hour unscathed despite James Anderson and Stuart Broad repeatedly beating the outside edge after England captain Alastair Cook won the toss in overcast conditions offering swing.
But Kaushal Silva fell for 13 when caught behind by Prior off a full-length Anderson delivery.
England had a chance to run out Sangakarra without scoring after he set off for a single that wasn't on and was sent back.
However, Prior failed to gather Broad's shy at the stumps from mid-on.
Anderson, after a fine spell of one for 16 in 10 overs, was replaced by Plunkett.
The former Durham quick struck second ball when, from around the wicket, he knocked over left-hander Dimuth Karunaratne's leg-stump with a delivery that swung sharply.
Ian Bell nearly marked his 100th Test appearance with a spectacular catch when, at leg slip, he did well to get both hands to a full-blooded pull by Mahela Jayawardene off Plunkett only for the ball to burst through his grasp.
According to television replays that same over saw Sangakkara get a thin edge behind but neither Plunkett or Prior went up.
Plunkett, continuing from around the wicket, got Sangakara to edge behind on 27 only for the ball to hit Prior on the chest and bounce away from his gloves.
But a third-wicket stand worth 52 ended when the persevering Plunkett induced an outside edge from Jayawardene, on 27, and Chris Jordan held a low catch at second slip.
Next ball 108 for three became 108 for four when Lahiru Thirimanne fell for a golden duck after fending Plunkett's well-directed rising delivery straight to Sam Robson at short-leg.
However, Sri Lanka captain Angelo Mathews who, in common with Sangakkara, scored a hundred at Lord's, and the all-rounder survived the hat-trick.
Sangakkara, looking increasingly assured, went to fifty in 106 balls including eight fours.
Part-time spinner Ali was dealt with severely by both batsmen, Mathews hoisting him for six to bring up a fifty stand with Sangakkara.
But Mathews (26) edged Anderson low to third slip where Gary Ballance took a well-judged catch with Sri Lanka now 161 for five.
Sangakkara was reprieved again when, after cutting hard at Jordan, a diving Ali failed to cling on to the catch.
Sangakkara then played arguably the shot of the day when he drove Jordan for a sublime straight four.