W trakcie swojej kariery politycznej obejmował szereg stanowisk w administracji terytorialnej. Był radnym miasta Ussel (1983–1989), radnym regionu Limousin (1992) i jego wiceprzewodniczącym (1998–2001). Działał w samorządzie Tulle jako zastępca mera (1989–1995), radny (1995–2001) i mer tej miejscowości (2001–2008). Od 2008 do 2012 przewodniczył radzie generalnej departamentu Corrèze.

W latach 1988–1993 i 1997–1999 sprawował mandat posła do Zgromadzenia Narodowego. W 1999 przez kilka miesięcy był deputowanym do Parlamentu Europejskiego, członkiem frakcji Partii Europejskich Socjalistów. W 2002 i 2007 ponownie był wybierany do izby niższej francuskiego parlamentu.

W 1997 został I sekretarzem Partii Socjalistycznej, po objęciu przez Lionela Jospina urzędu premiera. Utrzymał to stanowisko po porażce lewicy w 2002. W trakcie kampanii przedreferendalnej opowiadał się za poparciem Konstytucji dla Europy, wbrew stanowisku części partyjnych liderów (w tym Laurenta Fabiusa).