Il étudie au Conservatoire de Bruxelles dans la classe de Pierre Laroche. Il travaillera ensuite, entre autres, au Théâtre National dans Faut pas payer de Dario Fo (mes. Lorant Wanson), au Théâtre du Méridien dans Les Mille et une nuits de Philippe Blasband, au Zone Urbaine Théâtre dans Voix Secrètes et L’Ouest solitaire dirigés par Georges Lini, qu’il mettra à son tour en scène dans L’Enfant froid de Marius Von Mayenburg. En mars 2012, il jouait dans Nous étions timides, un spectacle de théâtre-danse d’Edith Depaule. En 2017, il a joué au Théâtre de la Porte Saint-Martin à Paris Un air de Famille et Cuisine et Dépendances d’Agnès Jaoui et Jean-Pierre Bacri, dans la mise en scène des auteurs.
Il poursuit depuis plus de 20 ans une passionnante collaboration avec Dominique Serron et son Infini Théâtre, qui lui a permis d’aborder Shakespeare, Nabokov, Marivaux, Gozzi, Genet, Tchekhov, Corneille ou, plus récemment, Molière avec le rôle d’Alceste à la rentrée 2017 dans le Misanthrope.
Parallèlement, il travaille au cinéma avec Philippe Blasband, Emmanuel Salinger, Michel Hazanavicius, Arnaud Desplechin (grâce auquel il est nommé aux César du meilleur espoir pour Un Conte de Noël), Miel Van Hoogenbemt, Catherine Corsini, Michaël Haneke, Kore-Eda et d’autres.
A la télévision, il interprète le personnage du procureur Siriani dans la série Zone Blanche.
Sur Netflix, on peut le voir dans la série Into the Night.