Sangakkara's knock was a chanceless one and, after resuming at Galle International Stadium from his overnight score of 111, he reached 150 in the afternoon by pushing Junaid Khan to mid-on for a single.
Sangakkara also completed 2,000 test runs against Pakistan, becoming only the second cricketer after Indian great Sunil Gavaskar to achieve the mark.
His eight hundreds against Pakistan is a record against that country, jointly held with compatriot Aravinda de Silva.
Pakistan off spinner Saeed Ajmal took 5-138, completing his sixth five-wicket haul when he picked up three wickets in the session as Sri Lanka slumped to 335-5 from 315-2.