Buttler, whose 75 at Old Trafford helped England to a three-wicket win in the first Test, had moved into the 90s by the time the first of two rain breaks kept the players off the field for nearly two hours in total.
But the umpires, much criticised for not doing enough to get play underway in a drawn second Test at Southampton marred by weather interruptions, extended the pre-lunch session until 2pm local time (1300 GMT).
It took Crawley 25 balls to add to his overnight score but he did so in style, elegantly flicking a half-volley from left-arm quick Shaheen Afridi off his pads for four through midwicket.
Buttler went to 99 with an elegant forcing shot for four off Mohammad Abbas. He was still on 99 when, after opposing wicketkeeper Mohammad Rizwan came up to the stumps, he was given out caught behind off Abbas, a probing paceman.
Buttler immediately reviewed umpire Richard Illingworth’s decision and replays showed the ball had missed the outside edge, with the bat appearing to hit the pad instead.
Next ball, Buttler punched Abbas through point to complete a 189-ball hundred with 10 fours and two sixes.
It was the 29-year-old Buttler’s second century in 47 Tests following his 106 against India at Nottingham’s Trent Bridge two years ago — an innings that took place soon after the World Cup winner’s recall to England’s red-ball side — and first as a wicketkeeper.
Pakistan, fielding just four frontline bowlers including leg-spinner Yasir Shah, pressed for a breakthrough but, with the sun starting to shine, Crawley and Buttler remained united.