Lara is now third behind Indian maestros Sachin Tendulkar (35) and Sunil Gavaskar (34) in the all-time Test century list.
This is his third successive hundred against Pakistan since hitting two centuries in the two-match series in the Caribbean last year.
The left-handed batsman, who started his career at the Gaddafi stadium 16 years ago, smashed his previous best score in Pakistan which was 44 on his debut Test in 1990.
Throughout the game, Shivnarine Chanderpaul batted with discomfort after suffering from a stomach bug for three days. He survived a stumping off Kaneria on 56 runs.
Gul, who put on an excellent display with 4-99 for nine wickets removed Dwayne Bravo leg-before for three.
Kaneria had Denesh Ramdin caught at forward short-leg for one to leave the tourists at 252-6 at the tea interval.
Pakistan took the second new ball with the tourists still needing nine runs to avoid an innings defeat. Chanderpaul hit Nazir for two boundaries before miscuing another pull to be caught at short mid-wicket by Mohammad Yousuf.
The 32-year left-handed batsman hit eight boundaries during his 262-minute stay at the crease.
Dave Mohammed avoided the innings defeat before Nazir dismissed him for 15.
From the other end, Gul wrapped up the innings by dismissing Jerome Taylor who was caught behind for eight to finish with 9-164. Nazir finished with 3-99.
Resuming at 74-3 on Tuesday morning, the West Indies lost night-watchman Fidel Edwards in the eighth over of the day when paceman Shahid Nazir forced an edge to the slip where Younis Khan took a low catch. Edwards made 10.
Pakistan gave Lara a reprieve on 48 when Hafeez failed to hold a low catch at gully off Gul and the West Indian captain made the home side pay for the lapse, batting for another three hours.