The Pakistan Cricket Board said the team would play three Tests, five one-day internationals and two Twenty20 matches against the Lankans in December and January.
They will play two Tests, five ODIs and two Twenty20 matches against South Africa in October-November.
South Africa and Sri Lanka refused to tour Pakistan because of security concerns.
No Test side has visited Pakistan since 2009 when militants attacked the Sri Lankan team in Lahore, killing six Pakistani policemen and a van driver and wounding some players.
Pakistan have since played all their home series at neutral venues, mostly in the UAE.
Pakistan will also play an official T20 match against Afghanistan on Dec. 8.