"According to preliminary information, an explosion of an unidentified object occurred in a store," a spokeswoman for Russia's Investigative Committee, Svetlana Petrenko, said in a statement.
The blast was caused by a "homemade explosive device with the power equivalent to 200 grammes of TNT filled with lethal fragments," she said.
"The investigation is looking at all possible causes of what happened," she said, adding that a probe for attempted murder had been launched.
The incident comes several months after Russia's second city was rocked with a metro bombing in April which killed 16 people and amid concern that hundreds of Russian citizens who travelled to fight alongside jihadists groups abroad could pose a mounting security challenge back home.
"Ten people have been hospitalised, their lives are not in danger," the head of the Saint Petersburg investigative unit Alexander Klaus told Russian news agencies.
An emergencies ministry representative told AFP that one of the injured was in serious condition.
An AFP correspondent at the scene observed first responders and police as well as a car belonging the Federal Security Service (FSB), which investigates acts of terror.
The building containing the supermarket did not appear to have sustained serious damage.
Police have cordoned off the area while the city's transportation authorities briefly rerouted public transport in the neighbourhood.
Passerby Galina Gustova, 58, observed the scene with horror.
"How terrible! And this happens as people are shopping ahead of the holidays," she said. "It's a good thing nobody died."
"I often buy groceries here, I wanted to go in but everything is blocked," said another local, 20-year-old Viktoria Smirnova.
"I'm a doctor, I heard on the news that there was an explosion. I live nearby and thought I could be useful," another bystander, 50-year-old Marina Bulanova, told AFP.
Sources told Russian agencies that the explosive device had been placed in a storage locker.
"About 6:30 pm there was the sound of a blast. As a result, several people have been injured," the Saint Petersburg police said.
"There is no fire. All shoppers have been evacuated," an emergencies ministry representative told Interfax.
Witness Artur Yeritsyan told TASS news agency that he heard the blast and saw smoke in the shop, but that there were not a lot of customers at the time, with some victims being taken away by ambulances.
Saint Petersburg, which is set to host World Cup matches next year, is still reeling from the deadly metro bombing in April that killed 16 and wounded dozens.
That bombing was claimed by a group linked to Al-Qaeda which said it was a message to countries engaged in war with Muslims.
In July, the FSB said it had detained seven people who were preparing "acts of terror" in Saint Petersburg, particularly its railway system and major public gathering places.
And this month Russian security services said they had dismantled an Islamic State group cell apparently preparing attacks in the city.
FSB director Alexandra Bortnikov said earlier in December that around 4,500 Russian citizens had travelled abroad to participate in "terrorist" groups.