Among those killed were believed to be at least four children, and at least 34 people were believed to have been injured in the blast in Peshawar, the BBC reported.
No group had claimed responsibility for the explosion, which occurred near a stronghold of Taliban and al-Qaida militants. Explosives were believed to have been planted on a roadside and remotely detonated when the bus passed, the British broadcaster said.
The bus, which had been carrying employees from Peshawar to Charsadda, appeared to have been the target of the attack, police said.
The attack came a day after a bomb killed at least 15 people in the Pakistani city of Quetta.