The 22-year-old opener scored 105 as England reached 354-3 in the four-day encounter against a Sri Lanka Board President’s XI in Colombo.
Captain Joe Root made 90 not out off 122 balls and Ollie Pope an unbeaten 84 off 120, adding an unbroken 175 for the fourth wicket.
The two-Test series starts on 19 March in Galle.
- England in Sri Lanka – fixtures & results
Crawley, who scored 43 and 91 in England’s drawn tour match last week, shared an opening stand of 103 to which Dom Sibley contributed 37.
Joe Denly, preferred to Keaton Jennings at number three, was hit on the helmet before he had scored and offered two half-chances early in his innings of 26.
Crawley, who made his Test debut against New Zealand in November, averages 27.33 from four Tests after scoring his maiden fifty in the final Test in South Africa in January.
England batting coach Graham Thorpe said: “Every day he just goes out there and continues to impress.
“The more he plays, the more he’s learning and the hungrier he’s getting. A willingness to learn quickly counts for a lot at this level.
“He’s nowhere near the finished article. He’s 22 years old, but we’re really excited about him as a player after the last three or four months around him.
“We hope his curve can continue to go up.”