The explosion occurred in the city centre about 10 minutes before iftar, the time for breaking the daily fast during the Islamic holy month of Ramadan.
Zafar Khan, a police officer, said six people in the street were killed and another man later died in hospital.
At least 41 others were wounded, several seriously.
The blast sprayed body parts and debris across the street, which police pickup trucks immediately cordoned off.
Habibullah Khan, an 18-year-old glass bangle vendor, said: “After the explosion people all around the area were crying. Then there were people lying in pools of blood. Debris was everywhere.”
At the time of the blast, the street was crowded with shoppers making last-minute purchases of food for meals and shoes and jewelry for next week’s three-day festival of Eid, which marks the end of Ramadan.
Mohammed Riffat Pasha, chief of police in the North West Frontier Province of which Peshawar is the capital, said there was no immediate claim of responsibility for the blast, which was caused by a homemade bomb planted in a fruit cart left by the side of the road.
Aftab Khan Sherpao, Pakistan’s interior minister, condemned the bombing as terrorism but would not speculate on who might have been behind it.
Friday’s attack was the deadliest of several apparently connected bombings that have hit the city in recent weeks. Police have revealed no details on who might be behind the blasts.