The bus, which was going to Iran, was attacked in Turbat area of Balochistan, state-run media reported.
Eighteen people were killed instantly and two more were injured.
No group claimed responsibility for the incident though such attacks are usually blamed on the banned Lashkar-e-Jhangvi.
Militants have attacked several buses carrying Shia pilgrims in Balochistan over the past few months.
Scores of Shias have been killed in these attacks.