Nasce in Australia ma all'età di quattro anni, nel 1975, è già in Italia assieme alla famiglia, emigrata nell'altro emisfero per lavoro.
Esordisce nel cinema a tredici anni inLa sposa era bellissimadi Pal Gabor, a fianco di Angela Molina e Massimo Ghini. L'anno successivo, 1987, è diretto da Pupi Avati nello sfortunato Ultimo minuto, uno dei pochi film dedicati al gioco del calcio. Di nuovo, è a fianco di un grandissimo interprete: Ugo Tognazzi.
La fine degli anni Ottanta segna un primo, importante trampolino di lancio: Il coraggio di parlare è del 1987,Ciao ma' del 1988. Sempre nel 1988 è diretto da Giuseppe Tornatore nel film premiato con l'Oscar Nuovo Cinema Paradiso: vi interpreta il protagonista Salvatore "Totò" in età adolescenziale. Anche l'estero si accorge del suo volto pulito ma dotato di intensa personalità.
Soltanto nel 1991 è infatti chiamato da Alfonso Arau per Come l'acqua per il cioccolato, film che lo ha fatto conoscere e apprezzare oltreoceano. Alterna esperienze americane con impegni in patria: nel 1993 gira La ribelle di Aurelio Grimaldi, insieme a Stefano Dionisi e Penelope Cruz, e nel 1994, sempre per la regia di Grimaldi,Le buttane.
Nel 1996 è la volta di Dario Argento, che lo vuole nel cast deLa sindrome di Stendhal, film sfortunato e poco amato, invece fra i migliori dell'ultimo periodo del regista romano.
Cinema e televisione iniziano ad andare di pari passo: nel 1997 gira con F. Murray Abraham Una vacanza all'inferno, mentre è in La frontiera insieme a Raoul Bova, collega con cui ha esperienze di vita e di professione in comune, e Giancarlo Giannini. Nel 2000 è inDal tramonto all'alba 3, a dispetto del titolo il prequel del film concepito da Robert Rodriguez e Quentin Tarantino.
Nel 2001 è ancora Pupi Avati a volerlo per I cavalieri che fecero l'impresa, coproduzione italo-francese che vede protagonisti Raoul Bova, Carlo Delle Piane, F. Murray Abraham, Edward Furlong.
Vivendo a Los Angeles da più di dieci anni (il suo primo ruolo americano è in My Brother Jack, del 1998), ha modo di ottenere parti anche in produzioni americane importanti: le affinità con la poetica di Rodriguez emergono con il ruolo del bandito ubriaco ottenuto in C'era una volta in Messico (2003), a fianco di Antonio Banderas e Johnny Depp, mentre dopo due anni recita in Mary di Abel Ferrara.
Di nuovo alterna cinema a televisione per qualche anno, mentre nel 2007 è Marco Risi a regalargli una parte da protagonista di assoluto rilievo: interpreta infatti Diego Armando Maradona nel biopic Maradona, la mano di Dio. Parteciperà poi al film pluripremiato Anime nere (2014) di Francesco Munzi e nel 2016 a Ustica di Renzo Martinelli.
Ancora nel 2016 è parte del cast dell'esordio alla regia di Marco Danieli, La ragazza del mondo, al fianco di Sara Serraiocco, Michele Riondino e Lucia Mascino.
Lo vedremo poi in Una famiglia, Aspromonte - La terra degli ultimi, Martin Eden e in Il mio posto è qui, in cui recita come protagonista.