Родился 29 ноября 1920 в деревне Дубинкино Чулымского района Новосибирской области, русский.
В 1943 окончил Московский авиационный институт им. С. Орджоникидзе, затем - высшую партийную школу при ЦК КПСС.
С 1943 по 1944 работал на инженерных должностях на авиационном заводе в Новосибирске.
С 1944 по 1949 работал первым секретарем райкома, секретарем, первым секретарем Новосибирского обкома ВЛКСМ, с 1949 по 1961 - лектором Новосибирского горкома, заведующим отделом горкома, затем обкома КПСС, начальником областного управления культуры, заместителем председателя облисполкома, первым секретарем райкома, секретарем Новосибирского обкома КПСС.
Член Политбюро ЦК КПСС с 1985 по 1990.
В 1989 был избран народным депутатом СССР.
19 декабря 1999 был избран депутатом Государственной Думы РФ третьего созыва.
18 января 2000 как старейший депутат Госдумы третьего созыва открывал первое заседание Думы.
Член КПРФ, один из сопредседателей Союза компартий бывшего СССР.
Женат. Имеет сына.