Police officials said they believed the explosives were hidden in a pick-up truck that was destroyed by the blast.
Footage on television showed the mangled remains of the vehicle at the market in Mattani area.
Three persons were killed instantly, police officials and witnesses said. The 16 injured people were taken to hospitals in Peshawar.
Officials at the Lady Reading Hospital said they had received five injured persons, including a child.
The powerful explosion damaged several cars and shops. The market was crowded at the time of the blast, witnesses said.
No group claimed responsibility for the attack though such incidents are usually blamed on the Pakistani Taliban.