В 1972 году окончил механико-математический факультет Московского государственного университета им. М. В. Ломоносова (МГУ), затем аспирантуру; был секретарем парткома факультета. В 1986 году возглавил объединенный профсоюзный комитет МГУ. В 1988 году стал секретарем парткома МГУ. С 1991 принимал участие в создании и становлении Коммунистической партии Российской Федерации (КПРФ). С 1995 секретарь ЦК КПРФ. с 1997 заместитель председателя ЦК КПРФ (по идеологии). В 2004 году стал первым заместителем председателя ЦК КПРФ. В 1995 избран депутатом Государственной Думы РФ второго созыва, в 1999 году - третьего созыва, в 2003 году - четвертого созыва, в 2007 году – пятого и в 2001 году – депутатом шестого созыва. С 2007 года является заместителем председателя Государственной Думы Федерального Собрания Российской Федерации.