Il est député (de 1973 à 1997) puis sénateur socialiste du Finistère (1998 à 2008) et membre de différents gouvernements socialistes comme ministre de la Mer (1981 à 1983), ministre des Départements et territoires d'outre-mer (1988 à 1993) et ministre de l'Agriculture et de la pêche (1997 à 1998).