W 1981 roku został przewodniczącym Zarządu Wojewódzkiego Związku Socjalistycznej Młodzieży Polskiej w Białej Podlaskiej. Funkcję tę sprawował do 1984 roku. W następnym roku został pracownikiem Komitetu Wojewódzkiego Polskiej Zjednoczonej Partii Robotniczej w Białej Podlaskiej i był w nim aż do 1990 roku, kiedy to wstąpił do Socjaldemokracji Polskiej.
Przez rok (1994) pracował w Głównym Urzędzie Ceł. Była to jego pierwsza praca w administracji państwowej
Kolejne dwa lata oznaczały zdecydowany awans - został podsekretarzem stanu w Urzędzie Rady Ministrów oraz sekretarzem Komitetu Społeczno-Politycznego Rady Ministrów.
W 1999 roku wstąpił do SLD, a w rok później został zastępcą sekretarza partii. Był posłem Sejmu V kadencji, a pomiędzy 2001 a 2003 rokiem - sekretarzem stanu, Szefem Gabinetu Politycznego Prezesa Rady Ministrów.
Pierwszy raz został ministrem w styczniu 2003 roku - kierował pracami Biura d/s Referendum Europejskiego.
Od lipca 2003 do października 2005 roku kierował Rządowym Centrum Studiów Strategicznych.