Mahela Jayawardene scored another stylish century as Sri Lanka and England scrapped for control of the second Test on day one in Colombo.
The hosts won what seemed a crucial toss, only for a superb opening spell from James Anderson to leave them three down after nine overs.
But Jayawardene, whose 180 in Galle settled last week's series opener, dug in alongside Thilan Samaraweera (54) and compiled his 31st Test hundred to tip the scales back towards the home side.
It was his eighth ton against England and comprised 11 fours and the day's only six.
By the time Graeme Swann had prised him out for 105, the match was back in the balance, with Sri Lanka reaching stumps on 238 for six.
With Stuart Broad injured, England opted to drop Monty Panesar and bolster their seam attack with Steven Finn and Tim Bresnan.
Yet it was the familiar figure of Anderson who drew first blood.
For the second match in a row he took two wickets in two balls first up, Tillakaratne Dilshan nicking to Matt Prior after a wild 14-run cameo and Kumar Sangakkara bagging a second golden duck of the series.
Sangakkara was just about held by England's under-pressure captain Andrew Strauss at first slip, snatching the chance one-handed at the second attempt.
Jayawardene denied Anderson a hat-trick in the first match and did so again here, flicking to fine leg for four.
Anderson had not yet finished his morning's work, though, seeing off Lahiru Thirimanne after he unwisely padded up to a ball destined for middle stump.
That brought Samaraweera to the crease and he soon set about rebuilding with his captain.
Jayawardene was making things look typically simple, punishing bad balls and guiding decent ones towards third man as he made his way to 40 not out in a lunch total of 82 for three. Anderson could not recreate his earlier heroics in a shorter second stint after the break but Finn thought he had Samaraweera caught at short-leg for 36 only for the umpires - both on the field and on review - to disagree.
England were unimpressed by the verdict, with team director Andy Flower seen remonstrating with officials.
Strauss shuffled his bowlers where he could but Jayawardene was in control, moving to 50 almost without stirring.
Finn upset Samaraweera's rhythm when he clattered him on the back of the head with a bouncer but Sri Lanka were soon back on top as Jayawardene hammered Samit Patel for six.
Sri Lanka's run-rate was not oppressive, but their steady accumulation had begun to sap England's energy.
Jayawardene thrashed Bresnan for his eighth boundary when he dropped short but it was the Yorkshireman who finally broke the stand after 43 wicketless overs and 124 runs.
He went full and straight just before tea, beating Samaraweera with swing and sending him back lbw.
Jayawardene had a moment of fortune on 79, edging Anderson just wide of Strauss' left hand at slip and picking up four runs in the process.
Anderson also worked over new man Angelo Mathews without success as he failed to add to his haul in a high-class third spell.
Swann, meanwhile, was leaking too many runs, with both batsmen picking him off on either side of the wicket.
A nudge to the fine-leg ropes eased Jayawardene to 97 but he was held up by a drinks break one short of his landmark.
It was merely a delay of the inevitable, though, as Jayawardene nudged Patel into the on-side to bring up his century.
Mathews had settled at the other end too, doing his part to rotate the strike as the 50 partnership came up with a jogged single off Swann.
England appeared to be meandering when Swann, bowling round the wicket, finally found a way past Jayawardene's bat and won an lbw verdict from Asad Rauf.
The batsman immediately referred the decision but Swann's appeal was upheld by DRS.
Strauss celebrated by unwrapping the new ball and Finn obliged by snaring England's sixth wicket, Prasanna Jayawardene caught behind for seven.
Mathews had eked an important 41no by the close, with Suraj Randiv with him overnight.