Après des études de lettres classiques à la faculté des lettres de Montpellier, il entre au Conservatoire national supérieur d'art dramatique de Paris, où il rencontre Antoine Vitez. Acteur de théâtre d'abord, il joue notamment avec Mehmet Ulusoyaux tout débuts du Théâtre de Liberté, puis avec Claude Risac, Jacques Rosner, Jacques Lassalle, Stuart Seide… Il met également en scène deux pièces de Pierre Macris au Théâtre des Amandiers de Nanterre. Il retrouve Antoine Vitez, qu'il assiste pour l'ouverture du Théâtre national de Chaillot, et avec lequel il jouera une dizaine de spectacles. C'est également pendant cette période qu'avec Antoine Vitez, il crée l'École du Théâtre national de Chaillot. Après un petit rôle remarqué dans le Cyrano de Jean-Paul Rappeneau, il tourne plus souvent qu'il ne joue sur scène, à part quelques incursions dans le théâtre privé (La Parisienne avec Nathalie Baye, et Les Portes du ciel avec Gérard Depardieu). Il revient au théâtre public à partir de 2001 pour jouer L'Échange mis en scène par Jean-Pierre Vincent, et alterne depuis, entre créations dans plusieurs centres dramatiques ou théâtres nationaux (dans des mises en scène d'Alain Françon, Éric Lacascade, Arthur Nauzyciel, Jean-Louis Martinelli, Stéphane Braunschweig et Olivier Py…), et tournages pour le cinéma et la télévision (avec pour partenaires Gérard Depardieu, Nathalie Baye, Yves Montand, Alain Delon, Isabelle Huppert,Guillaume Canet, Charles Berling…), sous la direction de François Dupeyron, Pierre Granier-Deferre, Xavier Giannoli,Antoine de Caunes, Xavier Beauvois, Christophe Honoré, Claude Chabrol… Il a également doublé Kevin Costner dans la V.F. du film Danse avec les loups.