The bus, which was carrying people looking forward to celebrating Eid in their hometowns and villages, plunged into a ditch on Islamabad-Peshawar Motorway near Burhan interchange.
Most of the dead hailed from Mardan and Swabi districts, according to local reports.
The bus coming from Lahore veered off the road when the driver lost control during an attempt to overtake a car, officials said.
The injured were transferred to hospitals in Hassanabdal, Taxila, Rawalpindi, and Islamabad.
Sixteen of the injured were in critical condition.