Jeho první profesionální obsazení bylo ve filmu Cizinec u mých dveří (1991), ačkoli hrál v dětských hrách už od svých čtyř let. Film Muž bez tváře z roku 1993, v němž si zahrál s Melem Gibsonem, pomohl ve třinácti letech nastartovat jeho kariéru. V následujícím roce si zahrál vedlejší roli v ansámblovém filmu Safe Passage. V roce 1996 ztvárnil roli Puka v opeře Benjamina Brittena Sen noci svatojánské v Metropolitní opeře v New Yorku. V roce 1998 hrál odsouzeného mladého vojáka během druhé světové války v Tichomoří ve filmu Tenká červená linie. Úspěch u kritiky i v pokladnách kin opět zaznamenal rolí ve filmu V ložnici z roku 2001, kde si zahrála jeho matku Sissy Spacek. Další kasovní trhák zaznamenal ve filmu Terminátor 3: Vzestup strojů (2003) jako John Connor (nahradil Edwarda Furlonga z filmu Terminátor 2: Den zúčtování), kde si zahrál společně s Arnoldem Schwarzeneggerem a Claire Danesovou. V roce 2003 si zahrál v seriálu HBO Carnivàle, který si získal věrné diváky i nadšené recenze. Seriál trval dvě sezóny a skončil v roce 2006.
Stahl si zahrál dva padouchy s dobrými ohlasy: (2001) a Roark Jr./Yellow Bastard ve filmu Sin City (2005). Stahl si nezopakoval roli Johna Connora ve filmu Terminator Salvation, kde ji místo něj převzal Christian Bale. Stahl poznamenal, že koncept filmu je „skok do budoucnosti, takže bude o dost starší“. Mezi jeho další role patřily filmy Jak vykrást banku (2007), Náměsíčná (2008) a Quid Pro Quo (2008).
V roce 2010 si Stahl zahrál roli Maxe Mathesona ve filmu Zrcadla 2, pokračování filmu Zrcadla, který režíroval Victor Garcia a napsal Matt Venne. Mezi jeho novější filmy patří On the Inside (2010) a Afghan Luke (2011) a Away from Here (2014).
V roce 2019 Stahl ztvárnil sériového vraha Glena Edwarda Rogerse ve filmu The Murder of Nicole Brown Simpson. Natáčení začalo v létě 2018 a film byl uveden do kin ve Velké Británii 9. prosince 2019. Film byl založen na Rogersově tvrzení, že Nicole Brownovou Simpsonovou zabil on sám namísto O. J. Simpsona, bývalého manžela Brownové a hlavního podezřelého, který byl již dříve souzen a v roce 1995 zproštěn viny. Film byl kritikou široce odmítnut.
V roce 2019 se Stahl objevil v krátkém filmu III skupiny The Lumineers, který vychází z jejich nového alba. Stahl hrál postavu Jimmyho Sparkse, který je otcem a závislým na hazardních hrách.