Cresce a Siena, dove i genitori, la madre valtellinese il padre volterrano, si sono trasferiti nel 1962. Frequenta giovanissimo per alcuni anni il Piccolo Teatro della città di Siena, dove ritornerà alla fine degli anni ’70. Nel 1979 viene ammesso come allievo attore all’Accademia Nazionale d’Arte Drammatica “Silvio D’Amico” di Roma dove si diploma nel 1982 con lo spettacolo Incantesimi e magie, diretto da Aldo Trionfo e presentato al 25° Festival dei due Mondi di Spoleto. Negli anni successivi lavora come attore in spettacoli firmati da importanti registi, tra i quali Antonio Calenda e Roberto Guicciardini.
Nel 1989 scrive ed interpreta il monologo Silvano che viene prodotto dal Teatro Niccolini di Firenze, diretto da Roberto Toni, con la regia di Alessandro Marinuzzi. Nel 1992 il monologo viene tradotto e messo in scena dall’Atelier Theatre di Louvain la Neuve (Belgio); la parte del giovane sacerdote Silvano è interpretata dall’attore Daniel Hanssens. Inizia in questi anni la collaborazione con il drammaturgo Roberto Cavosi che lo sceglie come protagonista di alcuni suoi lavori di successo come Luna di miele e L’uomo irrisolto. Nel 1994 scrive ed interpreta il monologo a tre voci Babbo secondo te quella lassù è una nuvola o un incendio?, che viene prodotto e messo in scena dal Teatro Niccolini di Firenze. Nel 1999 partecipa al progetto Grand Hotel Italia, ideato da Roberto Cavosi e scrive Il gregario, mini pièce di 20 minuti di cui sarà interprete principale con Giancarlo Ratti al teatro Argot di Roma.
Nel 2000 è autore con Roberto Cavosi del programma radiofonico Teatrogiornale, in onda per tre stagioni a Radio Tre Rai, e scrive circa 320 radiodrammi di quindici minuti ciascuno. Nel 2001 scrive per Maria Paiato La Maria Zanella. Per l’interpretazione di questo monologo la Paiato riceve nel 2005 il Premio Ubu come migliore attrice. È finalista al Premio Riccione del 2004 con Quando ci siamo ritrovati. Per la rassegna Kalsart scrive La madre che sarà interpretata a Palermo nella stessa estate da Valeria Valeri. Nel 2006 scrive Il caso K, finalista al Premio Enrico Maria Salerno. Nel 2007 vince il Premio Flaiano con Il raggio bianco. Nello stesso anno scrive per Maria Paiato Notte d’aprile che va in scena nella rassegna Garofano Verde, curata da Rodolfo di Giammarco . Nel 2008 vince il Premio Riccione sezione Bignami Quondamatteo con Un mondo perfetto che produce e porta in scena nel 2010 con Milvia Marigliano.
In questi anni prosegue l’attività di autore radiofonico con importanti produzioni come L’oro di Duccio, radiodramma andato in onda in occasione della mostra di Duccio di Buoninsegna a Siena (2003) interpretato da Daniela Giordano e Paolo Lombardi, e D-day, fiction radiofonica dedicata allo sbarco in Normandia da lui scritta e diretta per Radio Tre Rai. Nel 2005 scrive e dirige Da Trafalgar ad Austerlitz, sceneggiato a puntate dedicato alla campagna napoleonica del 1805 che ha come interprete principale Andrea Giordana.
In occasione dell’anniversario della rivoluzione ungherese del 1956 scrive e dirige per Radio Tre Rai Una doppia verità interpretato da Omero Antonutti. Sempre per Radio Tre Rai nel 2008 scrive lo sceneggiato La guerra di Benedetto, interpretato da Virginio Gazzolo e Paolo Lombardi.
Nel 2009 l’Associazione Nazionale Critici di Teatro premia Il ritorno, già finalista al Premio Ubu, come migliore testo teatrale italiano della stagione 2007/2008.
Nel 2011 ripropone alle scena riscritto e ampliato Il gregario che debutta al Festival Primavera dei Teatri di Castrovillari. Dal 2005 tiene un corso di drammaturgia radiofonica al Centro Sperimentale di Cinematografia – Scuola Nazionale di Cinema di Roma.