1982–[[1985]] m. – [[Lietuvos komunistų partija|Lietuvos komunistų partijos]] [[Lenino rajonas (Vilnius)|Vilniaus Lenino rajono]] komiteto instruktorius, [[1986]]–[[1990]] m. – LKP Centro komiteto Kultūros skyriaus instruktorius. [[Algirdas Brazauskas|Algirdui Brazauskui]] tapus LKP CK pirmuoju sekretoriumi, [[1988]]–[[1990]] m. dirbo jo padėjėju ryšiams su spauda. 1990–[[1992]] m. – [[Atkuriamasis Seimas|Aukščiausiosios Tarybos–Atkuriamojo Seimo]] deputato Algirdo Brazausko padėjėjas. Buvo [[TSKP]] narys. Atgimimo laikotarpiu buvo LKP atsiskyrimo nuo TSKP šalininkas. [[1990]] m. rugsėjo–gruodžio mėnesiais – savarankiškos LKP CK sekretorius.
[[1990]] m. steigiamajame Lietuvos demokratinės darbo partijos suvažiavime išrinktas pirmininko pavaduotoju. [[1991]]–[[1996]] m. – [[LDDP]] pirmininko pirmasis pavaduotojas, [[1993]] m. laikinai ėjo šios partijos pirmininko pareigas. 1996–[[2001]] m. – LDDP Prezidiumo narys. Nuo [[2001]] m. [[sausio 27]] d. – [[Lietuvos socialdemokratų partija|Lietuvos socialdemokratų partijos]] pirmininko pavaduotojas (LSDP nariu laikomas nuo [[1990]] m.).
1991–[[1995]] m. redagavo ir leido savaitraštį [[rusų kalba]] „Golos Litvy” („Lietuvos balsas”).
[[1992]]–[[1996]] m. – [[1992-1996 m. Seimas|VI Seimo narys]]. Seimo nariu buvo išrinktas pagal Lietuvos demokratinės darbo partijos sąrašą. Seime buvo Nacionalinio saugumo komiteto pirmininkas, [[1993]]–[[1996]] m. – Užsienio reikalų komiteto narys, Seimo delegacijos Šiaurės Atlanto Asamblėjoje (dab. [[NATO]] Parlamentinė Asamblėja) pirmininkas. Vienas iš Lietuvos nacionalinio saugumo koncepcijos (patvirtinta [[1996]] m.) kūrėjų: [[1993]]–[[1996]] m. vadovavo Respublikos Prezidento sudarytai darbo grupei parengti Lietuvos nacionalinio saugumo koncepciją.
1996–[[2000]] m. – [[1996-2000 m. Seimas|VII Seimo]] narys. Seimo nariu buvo išrinktas pagal Lietuvos demokratinės darbo partijos sąrašą. Seime dirbo Nacionalinio saugumo (vėliau – Nacionalinio saugumo ir gynybos) ir Europos reikalų komitetuose. Nuo [[2000]] m. [[spalio 24]] d. iki [[2001]] m. [[liepos 11]] d. – Seimo Nacionalinio saugumo ir gynybos komiteto narys, nuo [[2001]] m. [[sausio 26]] d. iki [[2001]] m. liepos 11 d. – Saugumo pakomitečio pirmininkas. Nuo [[2001]] m. [[liepos 12]] d. – Užsienio reikalų komiteto pirmininkas, nuo [[2001]] m. [[liepos 31]] d. – Europos reikalų komiteto pirmininko pavaduotojas. Taip pat išrinktas į [[2000-2004 m. Seimas|2000–2004 m.]] ir [[2004-2008 m. Seimas|2004–2008 m.]] kadencijų Seimus.
[[2006]]-–[[2008]] m. buvo Lietuvos Respublikos Ministras Pirmininkas, keturioliktojo ministrų kabineto po Nepriklausomybės atkūrimo vadovas. LEO LT iniciatorius
[[2007]] m. [[gegužės 19]] d. XXVIII-ojo socialdemokratų partijos suvažiavimo metu buvo išrinktas partijos vadovu, pakeitęs ilgametį lyderį A. Brazauską.