The explosion jolted a market area in Hangu while worshipers were leaving Shiite and Sunni mosques after Friday prayers, CNN reported, quoting a police official.
Hospital officials said 16 people were reported in critical condition, the report said.
While CNN said at least 20 had died, Pakistan's Dawn newspaper said the explosion killed at least 22 people.
Dawn quoted a police official as saying the attack targeted members of the minority Shiite Muslim community but the people killed and injured also included Sunni Muslims.
Pakistan is a Sunni Muslim majority country.
No group had yet claimed responsibility for the attack, although the Shiites have been the victims in numerous recent sectarian attacks.