Fifty people have been injured by the blasts, Andrey Kibitov, the head of the city governor’s press service said on Twitter.
Russian President Vladimir Putin, who is in St. Petersburg for a meeting with Belarussian leader Alexander Lukashenko, said the cause of the blasts was not clear and efforts were underway to find out. He said he was considering all possibilities including terrorism.
All the city’s metro stations have been closed, Interfax reported.
Video showed injured people lying bleeding on a platform, some being treated by emergency services. Others ran away from the platform amid clouds of smoke.
Russia has been the target of attacks by Chechen militants in past years. Chechen rebel leaders have frequently threatened further attacks.
At least 38 people were killed in 2010 when two female suicide bombers detonated bombs on packed Moscow metro trains.