Dawn newspaper said the restaurant is frequented mostly by Shiite Muslims, a minority community in the predominantly Sunni Muslim country.
CNN, quoting police official Najeeb Rehmna, said the attacker was waiting at a nearby shop before rushing to the restaurant area to set off his explosives Tuesday night.
Police said the motive for the blast was not immediately clear.
Geo News said the explosion also damaged several shops and homes in the area.
The report said the injured were taken to nearby hospitals where some were reported in critical condition.
Peshawar is the capital of the northwest Khyber Pakhtunkhwa province near the border with Afghanistan.
Dawn said the explosion occurred near the Imambargah Alamdar in Kucha Risaldar, a Shiite neighborhood in the city.
Dennis Rodman pledges to end trips to North Korea
Senate Democrats to pull all-nighter on climate change