Народився 16 серпня 1950 р. у с. Верби Любешівського району Волинської області. В 1972 р. закінчив Луцький державний педагогічний інститут ім. Лесі Українки за спеціальністю "вчитель історії і суспільствознавства". Кандидат історичних наук.
З 1972 р. - вчитель історії в ЗОШ с. Велика Глуша, Любешівського району.
1972-1974 рр. - аспірант Інституту суспільних наук АН УРСР (м. Львів).
1976-1981 рр. - науковий співробітник ІОН.
1981-1988 рр. - лектор, заступник завідувача Будинку політпросвіти, заступник завідувача відділу пропаганди і агітації Львівського обкому Комуністичної партії України.
З 1988 р. - секретар Львівського міськкому КПУ, одночасно з 1989 р. - інструктор ідеологічного відділу ЦК КПУ.
Листопад 1990 - вересень 1991 рр. - перший секретар Львівського міськкому КПУ.
1991-1993 рр. - член СПУ.
1992-1993 рр. - головний редактор партійної газети "Товариш".
1993-1997 рр. - головний редактор газети "Комуніст".
З 1995 р. - член Президії і другий секретар ЦК КПУ.
1997-1998 рр. - керівник центрального виборчого штабу КПУ. У зв'язку з реорганізацією структури партії 2006 р. залишає посаду другого секретаря і стає першим заступником голови партії.
Березень 1998 - квітень 2002 рр. - народний депутат України III скликання від КПУ, № 6 у списку.
9 липня 1998 - 21 січня 2000 рр. - I заступник голови Верховної Ради України.
Квітень 2002 - квітень 2006 рр. - народний депутат України IV скликання від КПУ, № 6 у списку.
Червень 2002 - листопад 2003 рр. - член регламентного комітету.
Листопад 2003 - квітень 2006 рр. - I заступник голови Верховної Ради України.
З квітня 2006 р. - народний депутат України V скликання від КПУ, № 2 у списку.
З листопада 2007 р. - народний депутат України VI скликання від КПУ, № 6 у списку.
З травня 2010 р. - I заступник голови Верховної Ради України.