Stanislav Listyev told CNN: "I was going down the escalator at Sennaya Square at about 2:30 p.m. -- and at that moment I felt an explosion wave underneath, everything filled with smoke, people started panicking.
"So the trains stopped and almost immediately the evacuation started. I think that explosion happened in the tunnel between the stations. The smoke was coming out of there. There was nothing on the station itself, everything was fine."
Alexey Chirochkin was sitting on a bench in the subway station with his earphones on when he noticed a woman approaching him, he said. As he got up to give her his seat, the woman fell and he grabbed her.
Her face and hands were bloody, and she started crying when he asked if she needed an ambulance, he said.
"Then I take my earphones off, I look around (and I see that) the station is full of smoke," Chirochkin said. "People are running, panic (takes over). But there was no crowd. (People) did not jump over each other, did not push each other ... Some were jumping out of (the metro car's) windows."
"I saw a lot of injured people," he said. "People were crawling while bleeding. They had such a look in their eyes. A girl was yelling, 'Please help my guy!'"
Subway employees ordered people to leave the scene, he said.
Chirochkin recalled helping a man pry open the jammed, bent train doors to pull a victim out of a car and lay him on the platform.
"It is possible that a person that I dragged out was dead," Chirochkin said. "He had a lot of blood on his jacket."
The scene inside the train cars horrified him.
"People there did not have whole bodies ... They were not asking for help. They were not moving," Chirochkin said. "Their eyes were glassy. They were bleeding out."
An unnamed eyewitness who spoke to the state news agency, Tass, said: "In the metro car, everyone expected death, if I can say that."
"After the explosion, everyone expected consequences, then we were taken out, and people began to help each other, brought others out, most were covered in blood."
'I saw dead people'
Another witness told Tass that people waited for evacuation for several minutes after the explosion, which took place between the Sennaya Ploshchad and Tekhnologichesky Institute stations in central St. Petersburg.
"I saw dead people, three (or) four people minimum, the emergency services arrived after five (to) seven minutes," he said.
A woman interviewed by Life News in Russia said: "The people were bloody, they had their hair burned. Smoke came out of the cars. We were told to move to the exit, because the traffic was stopped. People just ran.
"My friend was in a metro car near to the one which exploded. She said it shook. When she came out, she saw that people were all disfigured."
'Many were crying'
St. Petersburg resident Leonid Chaika, who said he was at the station where the blast happened, told Reuters: "I saw a lot of smoke, a crowd making its way to the escalators, people with blood and other people's insides on their clothes, bloody faces. Many were crying."
Geoff Edwards, 68, from Liverpool, England, works in St. Petersburg. He told the BBC he is a quarter of a mile away from the scene.
"There are helicopters flying around right now, I can hear them out of the window," he said. "A colleague told me that one landed near the station -- to collect dead bodies. "
Meanwhile Instagram user @a_shevala posted a video of emergency responders at Sennaya Square in the aftermath.
And Instagram user @kuchynskaya shared a video of ambulances rushing to the scene and then racing away to the hospital.
At least 10 people are reported dead, according to three state-run Russian news agencies. The death toll is one lower than the tally given by the Russian Health Ministry earlier in the day. At least three dozen are injured, the Health Ministry said. Other agencies in St. Petersburg gave differing numbers for the injured.