Professeur à Paris avant 1848, il prend part aux journées de février et est nommé sous commissaire du gouvernement à Brioude. Il est député de la Haute-Loire en 1849, siégeant à la Montagne. Compromis à la suite de la Journée du 13 juin 1849 il est arrêté, déporté et déchu de son mandat parlementaire. Il s'exile à Genève et ne revient qu'à la fin de l'Empire.
Conseiller général du canton d'Auzon en 1871, il est député de la Haute-Loire de 1876 à 1885 et de 1889 à 1893, siégeant à l'extrême gauche. Il est l'un des « 363 » qui refusent la confiance au gouvernement de Broglie, le . Il est le premier à s'opposer à Jules Ferry lors de son discours à l'Assemblée le 28 juillet 1885, justifiant sa politique coloniale par un prétendu « droit des races supérieures vis-à-vis des races inférieures », s'exclamant : « Oh ! vous osez dire cela dans le pays où ont été proclamés les droits de l'homme ! ».