The bomber detonated his suicide jacket when he was stopped by policemen at the post outside the State Life Insurance Corporation building on the busy Mall Road in Peshawar cantonment at around 11 am, officials and witnesses said.
A policeman was among the four persons killed, witnesses and officials at the state-run Lady Reading Hospital said. Several policemen and women were among the 11 injured.
No group claimed responsibility for the attack. The Mall Road is a high-security zone and a school and an office of the Pakistan International Airlines are located in the area.
There is also an army check post on the road. Witnesses said they had seen body parts of the bomber lying scattered at the site of the blast. Several cars were damaged by the explosion.
Ambulances and private vehicles rushed the bodies and the injured to nearby hospitals. Officials of the bomb disposal squad said the attackers jacket was packed with over six kilograms of explosives and ball bearings.
North West Frontier Province Sports Minister Syed Aqeel Shah said that the bomber apparently wanted to target Saddar Bazar, one of Peshawar's busiest commercial areas located near Mall Road.
"The market is always packed and the bomber could have caused widespread destruction if he had reached there," he told reporters.
Provincial Senior Minister Bashir Bilour initially told the media that two bombers were involved in the strike but witnesses said they had seen only one attacker blowing himself up after he was stopped at the check post.
The attack came two days after a suicide bomber struck the Peshawar Press Club, killing four persons and injuring over 20, including journalists.
Peshawar has borne the brunt of a wave of suicide attacks and bombings that has killed over 500 across Pakistan since October. The government has blamed these attacks on the Taliban, against whom the army has launched a major offensive in the tribal belt bordering Afghanistan.