Il adhère aux Verts en 1984, l'année qui suit sa fondation, et soutient le premier courant qui demande la possibilité d'alliance avec la gauche, Verts pluriel, avec Dominique Voynet, qui finit par mettre en minorité la ligne « ni-gauche-ni droite » d'Antoine Waechter, puis négocie l'arrivée de Noël Mamère dans son parti.
Secrétaire national des Verts de 1997 à 2001, il est aussi coordinateur du Comité national de vigilance contre l'extrême-droite depuis 1998 et membre du Conseil économique et social de 1999 à 2004.
En 2002, il est en dernière minute candidat des Verts soutenu par le PS à Marseille, où il obtient 19 % face à Renaud Muselier (RPR), sur proposition de Christophe Madrolle (Vert). Celui-ci l'aidera à s'implanter dans les Bouches-du-Rhône, deviendra son attaché parlementaire en 2004, et le suivra au MoDem.
Il est élu député européen le 13 juin 2004 au Parlement européen (liste l'Écologie, les Verts-Parti Vert européen), après avoir été élu conseiller régional de Provence-Alpes-Côte d'Azur.
Il s'était prononcé dès l'été 2006, en faveur du soutien des Verts à une candidature de Nicolas Hulot à l'élection présidentielle de 2007, estimant qu'il n'y avait pas d'espace politique pour la candidature des Verts. Il défendra ce point de vue lors de l'Assemblée générale de Bordeaux en septembre 2006 et lancera le 12 janvier 2007 avec Marie-Hélène Aubert et Marie-Anne Isler-Beguin un appel public pour que Dominique Voynet cède sa place à Nicolas Hulot.
1992 - 1996 : conseiller régional d'Île-de-France
1999 - 2004 : membre du Conseil économique et social
2004 - décembre 2009 : conseiller régional de Provence-Alpes-Côtes d'Azur
2004 - 2014 : député européen (réélu en 2009)
depuis 2008 : conseiller d'arrondissement de Marseille (6-8) et Conseiller communautaire de la Communauté Urbaine de Marseille.
En 2014, avec Christophe Madrolle, il apporte son soutien au candidat socialiste à la mairie de Marseille et annonçe la création, en septembre, d'un nouveau parti de centre gauche, le Front démocrate.