Babar Azam and Fawad Alam shared a 158-run stand to guide Pakistan to 212-4 at stumps after the West Indies took three wickets in the first four overs on day one of the second Test in Kingston.
West Indies captain Kraigg Brathwaite won the toss and elected to bowl first, a decision rewarded immediately when Kemar Roach and Jayden Seales had Pakistan reeling at three wickets for two runs after 3.5 overs.
Roach had Abid Ali (1) caught at slip and, six balls later, had Azhar Ali (0) caught behind in a hostile opening spell.
Seales broke through when Imran Butt (1) pushed forward in defence and feathered an edge to wicketkeeper Joshua Da Silva. A confident appeal was rejected by the on-field umpire but a review showed a slight edge on Butt’s bat and the West Indies had a third wicket.
After one of Pakistan's worst starts to a Test match, captain Azam and Alam dug in to withstand the early seam movement and post resilient half centuries.
On a hot, attritional day, both batsmen played and missed initially and had some false shots but eventually got on top of the attack.
They moved the total to 160 before Alam had to retire hurt because of cramp. He faced 149 deliveries for his unbeaten 76 before leaving the field.
Azam continued with Mohammad Rizwan, adding eight to the total, before his almost five-hour innings ended when he got a thick edge to Roach and Jason Holder took a catch low to his left at second slip in the 61st over.
Rizwan finished unbeaten on 22 and Faheem Ashraf was not out on 23.
The West Indies used seven bowlers, with Roach's 3-49 from 17 overs spearheading a weary attack before bad light stopped play.
West Indies won a tense first Test by one wicket.