C'est en 1986, dans le court-métrage Manège de Jacques Nolot, qu'il fait sa première apparition à l'écran
Dès lors, il enchaîne les tournages aussi bien pour le cinéma que la télévision
En 1989, Bertrand Tavernier le dirige dans La vie et rien d'autre
Il en fait un de ses acteurs fétiches
Il tourne avec les plus grands, notamment Land and Freedom de Ken Loach en 1995, For Ever Mozart de Jean-Luc Godard, Mon homme de Bertrand Blier en 1996 ou encore Capitaines d'avril en 2000 de Maria de Medeiros
En 2005, il s'essaie au théâtre dans Grand et petit et continue à jouer régulièrement en parallèle des tournages
De 2012 à 2015, il incarne Jérôme Séguret dans la série télévisée Les Revenants
Il fait la voix de Crao de La Pétaudière, de la série Silex and the City