Directeur de centre de formation professionnelle agricole de profession, il rejoint le Parti socialiste en 1975 et dirige la section d'Abbeville de 1976 à 1983 et de 1992 à 1997 (celle de Corbie entre 1983 et 1986). Il se présente une première fois aux cantonales de 1979 dans le canton d'Abbeville-Nord, mais échoue face au conseiller sortant UDF.
Il est élu conseiller municipal d'opposition à Abbeville en 1995 et devient député en juin 1997, battant le sortant Joël Hart (RPR).
En 2001, il mène une liste de gauche plurielle, en ticket avec la communiste Chantal Leblanc, qui n'obtient que 39,66 % face au maire, Joël Hart.
Il perd son siège en 2002 face à Joël Hart (UMP). En 2007, il tente, en vain, de reconquérir, sous l'étiquette MRC, son siège de député.
Au conseil municipal d'Abbeville, il se rapproche de Stéphane Decayeux (UMP) avec qui il se présente en 2008. Il se retrouve alors dans l'opposition au nouveau maire PS. Réélu en 2014 sur la liste de Stéphane Decayeux, il démissionne quelques jours plus tard[3]
Lors des élections municipales de 2020, il est candidat sur la liste de Michel Kfoury qui a tenté en vain d'obtenir l'investiture LREM. Elle n'obtient que 4,18 % au 1er tour.