The blast occurred on Charsadda Road in a bus carrying dozens of employees of the Civil Secretariat. The employees were being driven from government offices in Peshawar to their homes outside the city.
Police and rescue officials rushed to the area and took the injured to Lady Reading Hospital in Peshawar and a hospital in Charsadda. An emergency was declared in the hospitals.
Peshawar Commissioner Sahibzada Mohammad Anis told reporters it appeared that the bomb was planted on the bus. Officials of the bomb disposal squad said the bomb contained about seven kilograms of explosives and had a timer attached to it.
The powerful blast reduced the bus to a mangled heap of metal. Witnesses said the blast hurled passengers out of the bus.
The bomb was apparently planted in the back of the bus, which suffered the maximum damage.
No group claimed responsibility for the blast though such attacks in the country's northwest are usually blamed on the banned Tehrik-e-Taliban Pakistan.
The attack comes barely five days after a pair of suicide bombers blew themselves up outside a 130-year-old church in Peshawar, killing over 80 people in the deadliest attack on Pakistan's Christians.
In June last year, 19 people were killed and 20 injured in another bomb attack on a bus carrying Civil Secretariat employees.
78 killed, 130 injured in suicide attack on Peshawar church
Pakistan and Kenya terror attacks: Is there a link?
Why the carnage of minorities continues unabated in Pakistan
Ex-Pak minorities' minister's killer arrested: Pak police
Pak Taliban welcomes peace talk offer by Sharif's govt