Luke Wright became the second English batsman this year to miss his country's first Twenty20 century by a single run, as the world champions piled up 196 for five against Afghanistan.
Wright, absent for nine Twenty20 matches until Ravi Bopara's loss of form necessitated his return this month, crunched eight fours and six sixes from only 55 balls to get England's defence of their crown up and running in their first Group A match.
He finished on 99 not out, having managed only a two from the final ball of the innings at the Premadasa Stadium - three months after Alex Hales had hit England's highest score to date, 99, at Trent Bridge against West Indies.
Thanks principally to Wright, England nonetheless had a total they should easily defend - to not only begin their campaign with a victory but book their passage already into the Super Eights stages.
Number three Wright shared stands of 69 for the second wicket with Hales and then 72 for the third with Eoin Morgan. He came to the crease with England immediately up against it, after being put into bat under lights.
Craig Kieswetter allowed Shapoor Zadran to open the match with five dot balls and then edged the sixth down on to his stumps as the left-armer began with a wicket-maiden.
Hales was run-out at the non-striker's end, when Wright drove one straight back at Karim Sadiq, and several of the 'middle' overs then belonged to the Afghan spinners while Morgan found his range.
But Wright hit leg-spinner Samiullah Shenwari for his second six, high over long-on - and the charge was soon on.
Morgan managed only one boundary shot, a six over midwicket off Mohammad Nabi, but operated at better than a run-a-ball before he holed out in the leg-side ring.
Wright's innings was unblemished, until Izatullah Dawlatzai dropped a straightforward chance at point to reprieve him off Nabi on 75. Wright and Jonny Bairstow then made Dawlatzai pay a personal cost as they launched 32 runs, including four sixes, from the seamer's penultimate over of the innings.