The Taliban claimed responsibility for the attack, which injured at least 36 people in the outskirts of Peshawar.
About 10 kilograms (22 lbs) of explosives were used, said Shahibzada Anis Khan, district coordination officer.
The blast killed Matni-area Mayor Abdul Malik, who was outside his home when a car pulled up and detonated, Khan said.
The mayor's son, was injured severely, said Abdul Hamid Afridi of Reading Hospital in Peshawar. A little girl and five young men were among the dead, Afridi said.
Malik was in charge of organizing Lashkhar, a local volunteer militia fighting militants.
Up until about two years ago, the mayor supported the Taliban, a senior government official told CNN. He switched sides after disagreeing with the group about its strategies, particularly the targeting of civilians, the official said.
A local Taliban leader told CNN that there had been several attempts to kill Malik. He warned that anyone who interfered with the Taliban would be targeted by suicide bombers.