Pakistan on Tuesday announced Bangladesh will visit for three Twenty20s, a one-day international and two Tests across three trips, starting later this month.
The decision came two days after Bangladesh Cricket Board (BCB) initially refused to play Tests, saying their government had only allowed them to undertake a short tour of Pakistan for Twenty20 matches only.
But Pakistan Cricket Board (PCB) offered Bangladesh a new proposal in a meeting held in Dubai on Tuesday to finalise the tour. PCB said the agreement was facilitated by the International Cricket Council (ICC).
"PCB officials today reached consensus with the BCB on the upcoming series and the process was facilitated by the ICC chairman Shashank Manohar in Dubai," a PCB statement said.
Bangladesh will play three T20s in Lahore from 24-27 January before returning to Pakistan for the first Test from 7-11 February in Rawalpindi. They will visit again to play an ODI in Karachi on 3 April and the second Test from 5-9 April.
Both Tests are part of ICC World Test Championship, competed by the world's top nine teams.
PCB chairman Ehsan Mani said he was satisfied the matter was solved after a deadlock.
"I am pleased that we have amicably achieved a resolution that is in the best interest of this great sport as well as both the proud cricket playing countries," Mani is quoted in the release.
International cricket has gradually returned to Pakistan in the last four years after it was suspended in the wake of terrorist attacks on the Sri Lankan team bus in Lahore in March 2009.
Teams refused to tour over security fears, forcing Pakistan to play at neutral venues of United Arab Emirates between 2010 to last year.
Pakistan hosted various limited overs series and matches of their Twenty20 league between 2015-19 before hosting two Tests against Sri Lanka in December last year.
Since the two Tests against Sri Lanka, PCB had taken a strong stance of playing all its home matches in Pakistan.