Si diploma alla fine degli anni ‘80 alla Bottega di Gassman. Dopo alcune esperienze con Franco Però, Giancarlo Sepe, Aldo Trionfo, Chérif, è selezionato da Peter Stein per il Tito Andronico di Shakespeare allo Stabile di Genova, dove rimane alcune stagioni ricoprendo ruoli di primaria importanza in spettacoli di Benno Besson e Marco Sciaccaluga.
Nel 1997 Gassman lo richiama per Bugie sincere, al Teatro Stabile del Friuli.

Collabora inoltre con Federico Tiezzi, Marco Carniti e Patrick Rossi Gastaldi. Più recentemente è Onegin al Teatro Stabile di Torino con la regia di Daniele Salvo, Roberto Zucco per la regia di Chérif, al Teatro Stabile delle Marche, Giasone con Peter Stein nella Medea di Euripide, andata in scena a Siracusa nel 2004.
Col Piccolo di Milano interpreta il ruolo del reverendo nel Professor Bernhardi di Schnitzler, del Corifeo nelle Rane, di Coronato nel Ventaglio di Goldoni, partecipa alla messa in scena del Sogno di una notte di mezza estate e del Mercante di Venezia di Shakespeare, tutti per la regia di Luca Ronconi. Sempre al Piccolo lavora con Carmelo Rifici ne “I pretendenti” di Lagarce e in “Detteagli” di Lars Noren e con Serena Sinigaglia ne “La cimice” di Majakovskij.

È coprotagonista di Sostiene Pereira di Tabucchi, con Paolo Ferrari, regia di Teresa Pedroni. Interpreta Edgar nel Re Lear, Bruto nel Giulio Cesare, Iago nell’Otello e Claiban ne “la Tempesta” a fianco di Giorgio Albertazzi, messi in scena al Globe Theatre di Rom, per la regia di Daniele Salvo da cui è diretto anche in “Siamo tutti in pericolo, ultima intervista di Pier Paolo Pasolini “ e “Gramsci a Turi” di Antonio Tarantino presentato all’ultimo festival di Napoli. In quest’ultima stagione è stato in tournée con La Torre d’Avorio di Ronald Harwood per la regia di Luca Zingaretti.

Partecipa inoltre, in campo cinematografico e televisivo, a produzioni di Marco Bellocchio, Marcello Aliprandi, Alberto Sironi, Enrico Maria Salerno, Gianpaolo Tescari, Massimo Costa.