Figlio dell'attore Giancarlo Giannini e della regista Livia Giampalmo, a 18 anni inizia a lavorare come aiuto operatore in Evelina e i suoi figli, film per la televisione diretto dalla madre. Inizia a lavorare come regista, affiancando, tra gli altri, Giuseppe Tornatore in Una pura formalità, Rob Cohen in Daylight - Trappola nel tunnel ed Anthony Minghella ne Il talento di Mr. Ripley.
Debutta come attore nel film Alla rivoluzione sulla due cavalli, regia di Maurizio Sciarra. Nel 2002 viene scelto da Madonna per interpretare il remake di Travolti da un insolito destino nell'azzurro mare d'agosto di Lina Wertmüller. In questo remake, diretto da Guy Ritchie, interpreta lo stesso ruolo interpretato dal padre nel 1974. Travolti dal destino (2003) è un flop ai botteghini e riceve il Razzie Awards alla peggior coppia.
Tra i successivi film, ricordiamo: Stai con me (2001], diretto da Livia Giampalmo, Le conseguenze dell'amore, diretto da Paolo Sorrentino e Una talpa al bioparco, regia di Fulvio Ottaviano, entrambi del 2004, e infine Nero bifamiliare (2007), opera prima di Federico Zampaglione.
Lavora anche in fiction TV: le miniserie televisive Luisa Sanfelice (2004), per la regia dei fratelli Taviani, 48 ore (2005), regia di Eros Puglielli, e il film TV Amore proibito (2007), diretto da Anna Negri.
Il 10 febbraio 2006 ha interpretato la figura del "Principe Rinascimentale" nel corso della Cerimonia di apertura dei XX Giochi olimpici invernali a Torino.
Nella sua carriera di doppiatore, si ricorda soprattutto il doppiaggio di Heath Ledger ne Il Cavaliere Oscuro (dove l'attore, al suo ultimo lavoro, interpreta Joker) che gli fara vincere il Nastro d'Argento 2009 come miglior doppiatore.
In seguito doppia l'attore Eric Bana nel ruolo di Neo nel fim Star Trek (2009).