Kevin Pietersen recaptured his form by hitting a century to put England in firm control of the second Test against Sri Lanka in Colombo.
The charismatic batsman's knock of 151 from just 165 balls fired the tourists into a lead of 181 at the close of play on day three.
Opener Alastair Cook earlier fell just short of his own milestone as Tillakaratne Dilshan dismissed him on 94, six runs adrift of his 20th Test century.
Before that, Rangana Herath grabbed the first of his six victims by having Jonathan Trott caught behind for 64.
While Ian Bell and Matt Prior went relatively cheaply at the other end, Pietersen launched into the Sri Lankan attack and brought up his ton with a reverse sweep.
He had earlier been warned by umpire Asad Rauf for his use of the switch hit, which was protested by former Sri Lankan skipper Dilshan.
When Herath eventually trapped him lbw for 151, Pietersen had led England to 411-6 and useful contributions from Samit Patel and Graeme Swann further bumped the total to 460.
The hosts were forced to face the final over of the day but nightwatchman Dhammika Prasad survived six balls from James Anderson to see his side close on 4-0.
Pietersen's innings saw him reach 29 international hundreds for England - the most of any player for the Three Lions.