Born in Livorno, he completed his studies at the Arrigo Boito Conservatory in Parma, later mastering with Ernesto Palacio and Prof. Fernanda Piccini.
After his debut in 1999 at the Goldoni Theater in Florence in the role of Uberto in La serva padrona by Pergolesi and Paisiello, he obtained a series of engagements ,both at the Comunale in Florence and at the Teatro dell'Opera in Rome including Colline (La bohème), Oroveso (Norma), Count Rodolfo (La Sonnambula), Ferrando (Il Trovatore). In the same years he sang in several important Italian and foreign theaters including Palermo, Turin, Bologna, Genoa, Strasbourg, Marseille, Lyon, Monaco, Athens, interpreting roles such as Banco (Macbeth), Raimondo (Lucia di Lammermoor), Fiesco (Simon Boccanegra), Timur (Turandot), Figaro (The Marriage of Figaro), Gesler (Guillaum Tell), etc.
He makes his debut at the Teatro alla Scala as Colline in the historic staging by Franco Zeffirelli, followed by other titles in the Milanese theater such as Aida and Maria Stuarda. Following the debut at the ROH in London in Tosca, then in Zurich in Lucia di Lammermoor, at the Opera Bastille in Paris in Il barbiere di Siviglia, Aida and Lucia di Lammermoor. Followed by the roles of Mephistopheles in La damnation de Faust Palermo and Guglielmo Tell in Santa Cecilia, Alvise in La Gioconda at the Opera di Roma.
He has also sung at the Arena in Verona, at the Nederlands Opera in Amsterdam, at the Israeli Opera in Tel Aviv, La Monnaie in Brussels, Teatro Regio in Parma, at the Rossini Opera Festival in Le Siege de Corinthe conducted by Roberto Abbado.
Later he sang at the Nederlands Opera in Amsterdam in the new staging by Gianni Schicchi (Simone) directed by Marc Albrecht and at the Regio di Parma in Rigoletto. For the San Carlo Theater in Naples he sang for two openings of the 2013 and 2014 season in Aida and Il Trovatore directed by M° Nicola Luisotti. In March 2018 he debuted the role of Scarpia (Tosca)for the Granda Festival in Lima.
Among the recent and future engagements Rigoletto on the Champs Elysées and for the inauguration of the Season of the Teatro dell'Opera di Roma directed by Daniele Gatti under the direction of Daniele Abbado, Madama Butterfly at the Dutch National Opera in Amsterdam, Oroe in Semiramide at the Rossini Opera Festival and Giovanna D'Arco at the Monnaie in Brussels. His return to La Scala in the role of Angelotti in Tosca for the Inauguration of the 2019/2020 Season, Beethoven's IX in Taormina and Le nozze di Figaro at La Scala.