According to rescue officials, three people lost their lives on the spot, while more than 20 were wounded.
The injured and the bodies were moved to a nearby medical facility.
The passenger bus was going from Sakhi Sarwar to Faisalabad, said the local police.
Earlier in August, 2018, at least 14 people were killed and 33 others injured in a dreadful incident of collision between oil tanker and passenger bus in Lachi area, Kohat.
He said most of the victims belonged to Buner.
Rescue sources said the passenger bus was travelling from Buner to Karachi when this accident took place on Indus Highway.
The sources said the injured and dead were rushed to district headquarters hospital for medical treatment and autopsy respectively.
Over 50 passengers were boarded on the bus.
The Khyber Pakhtunkhwa government has declared emergency in the nearby hospitals.