The explosion happened as the train was travelling between stations*.
At least 30 others have reportedly been injured.
Russian security services say they found another explosive device at a nearby station, which was defused.
The entire metro system has been shut down with authorities launching a terrorism investigation.
Pictures from the scene at the Sennaya Ploshchad station show people lying on the platform, and a damaged train carriage.
Russian President Vladimir Putin, who was in the city for a meeting with the Belarussian leader, says it's too early to tell what the cause of the incident is.
(starts in Russian, then translated) "I would like to express my sincerest condolences to relatives of the killed and wounded. I have already spoken with the chiefs of special services, FSB director, law enforcement bodies and special services. We will do everything to identify the reasons for what happened, give a full evaluation of what happened, and city and federal authorities will do everything possible to support the families of our killed and injured citizens."
[videocard video="913012291616"]