Engagé en politique dès 1971 en devenant conseiller municipal de la ville, il s'inscrit au Parti socialiste en 1974. La même année, il devient adjoint au maire Roger Quilliot puis son premier adjoint en 1995. Il est élu maire le , succédant à Roger Quilliot qui avait démissionné peu avant, président de la communauté de communes de l'agglomération clermontoise (« Clermont Communauté ») le 2 octobre suivant, président du syndicat mixte des transports en commun (SMTC) le , sénateur du Puy-de-Dôme le 27 septembre suivant et président de la communauté d'agglomération à sa création, le .
Lors de la campagne référendaire sur le projet de Constitution européenne en 2005, il s'est prononcé pour le non.
Le , à la suite d'un désaccord avec son premier adjoint Gilles-Jean Portejoie, il démissionne de la fonction de maire de Clermont-Ferrand[1], son adjoint avait annoncé peu auparavant sa décision de conduire une liste séparée aux élections municipales de 2008. Le 9 juillet de la même année, il est réélu maire à l'issue d'un conseil municipal extraordinaire.
À la tête d'une liste d'union de la gauche à l'élection municipale de Clermont-Ferrand de , il est réélu au second tour dans le cadre d'une quadrangulaire avec 51,69 % des suffrages.
En 2010, à l'occasion du renouvellement d'un tiers des membres du Conseil constitutionnel, le sénateur Michel Charasse est nommé par le président Nicolas Sarkozy. Serge Godard étant depuis les élections sénatoriales de 2001 le suivant sur la liste conduite à l'époque par Michel Charasse, il redevient donc sénateur du Puy-de-Dôme, retrouvant le palais du Luxembourg après neuf ans d'absence.
Il annonce en qu'il ne briguera pas un nouveau mandat de maire lors de l'élection municipale de 2014, sauf en cas de circonstances exceptionnelles[2],[3]. Olivier Bianchi (PS) lui succède en .