Ele apareceu em diversos papéis desde seu primeiro papel principal em 1999 de
October Sky, seguido pelo filme
indie culto,
Donnie Darko, de 2001, que dava vida a um adolescente com problemas psicológicos e que contracenava com sua irmã da vida real,
Maggie Gyllenhaal. No filme
The Day After Tomorrow, de 2004, ele retratou um estudante preso em um evento cataclísmico do aquecimento e esfriamento global, ao lado de
Dennis Quaid como seu pai. O ano de 2005 foi seguramente o ano de sua consagração como ator diante do grande público, graças a sua interpretação de um marinheiro frustrado em
Jarhead e sobretudo como personagem do vaqueiro
Jack Twist em
Brokeback Mountain, de
Ang Lee, lhe rendeu elogios da crítica, o prêmio e uma indicação ao
Oscar de Melhor Ator Coadjuvante. Em 2010 estrelou o longa
Prince of Persia: The Sands of Time baseado no
jogo eletrônico de mesmo nome lançado em 2003. Em 2011 esteve na ficção científica
Source Code como o capitão Colter Stevens.