Luego de esto, interpretó al príncipe troyano Héctor en Troya" (2004), al agente secreto israelí Avner en Múnich" (2005), al rey Enrique VIII en "The Other Boleyn Girl" (2008), y al villano «Nero» en el largometraje de ciencia ficción "Star Trek" (2009).