The bus is said to have been taking the workers to their offices when it was hit on the outskirts of the city of Peshawar.
Peshawar lies near Pakistan’s lawless tribal belt – a stronghold of Taliban and al-Qaeda militants.
Hundreds have died in attacks in and around the city in recent years.
No group has so far said it carried out the latest attack, but it comes a day after a bomb killed at least 15 people in the Pakistani city of Quetta.
It is believed explosives were planted in a roadside vehicle and remotely detonated as the bus passed on Friday.
Witnesses said the explosion seemed to hit the back of the bus, which was moving at speed and drove on for some distance after the blast.
Police say the bus was carrying employees from Peshawar to Charsadda and that it appeared to be the target of the attack.
The explosion took place near a police station on a main road in the Gul Bela village area, on the northern outskirts of Peshawar.
The dead and injured were rushed to hospitals in Peshawar. The dead are thought to include at least four children and some women.
The US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…