Galina Starovoitova, a member of the lower house of Russia's parliament for the reformist party, Democratic Russia, was attacked in the entrance to flats, police said. The Interfax news agency said her aide, Ruslan Linkov, was also seriously injured.
Ms Starovoitova, 52, tried to run for president in the 1996 elections but her registration was turned down for technical reasons. She had said she would run again in 2000.
She served as President Boris Yeltsin's aide on ethnic issues in 1991 to 1992 - the only woman in his immediate circle - and was on the human rights committee of the USSR's Supreme Soviet. She was elected to that body from Yerevan, Armenia, in 1988. She was divorced and had one son.
There have been several attacks on prominent figures in St. Petersburg recently, including the killing of a banker, which police believe was a contract killing over business.