Bien qu'il soit principalement actif à la télévision, il a aussi joué pour le cinéma et il a également fait de la radio. Il est principalement connu pour son rôle de Jude, le rôle masculin principal dans
Across the Universe, comédie musicale américaine rythmée par les Beatles, et en tant que Young Charlie dans la série télévisée The Quest. Il a également tenu le rôle de George Boleyn, dans le film Deux soeurs pour un roi, aux côtés de
Natalie Portman,
Scarlett Johansson et
Eric Bana en 2008. Toujours en 2008, il est la vedette du film
Las Vegas 21 au côté de
Kevin Spacey et
Kate Bosworth qui récolte 80 millions de dollars aux États-Unis.
Il tourne actuellement dans The Way Back, le dernier film de
Peter Weir, dans lequel il interprete le role principal.