Első profi szerepe az Idegen az ajtómnál (1991) volt, bár már négyéves kora óta játszott gyerekdarabokban. Az 1993-as, Mel Gibson főszereplésével készült Az arc nélküli ember című film segített felpörgetni a karrierjét 13 éves korában. A következő évben mellékszerepet kapott a Safe Passage című együttes filmben. 1996-ban Puck szerepét játszotta Benjamin Britten Szentivánéji álom című operájában a New York-i Metropolitan Operában. 1998-ban egy halálra ítélt fiatal katonát alakított a második világháború csendes-óceáni háborújában a The Thin Red Line című filmben. Újabb kritikai és kasszasikert aratott a 2001-es In the Bedroom című filmben nyújtott szerepével, amelyben Sissy Spacek játszotta az édesanyját. Újabb kasszasikert aratott a Terminátor 3: A gépek felemelkedése (2003) című filmben John Connor szerepében (a Terminátor 2: Az ítélet napja című filmben Edward Furlong helyett), Arnold Schwarzenegger és Claire Danes oldalán. 2003-ban főszerepet játszott az HBO Carnivàle című sorozatában, amely hűséges közönséget és elismerő kritikákat kapott. A sorozat két évadon át tartott, és 2006-ban ért véget.
Stahl két gazembert is játszott, és jó kritikákat kapott: Bobby Kentet a Bully (2001) és Roark Jr./Yellow Bastardot a Sin City (2005) című filmben. Stahl nem játszotta újra John Connor szerepét a Terminator Salvationben, helyette Christian Bale vette át a szerepet. Stahl megjegyezte, hogy a film koncepciója “egy ugrás a jövőbe, tehát eléggé idősebb lesz”. További szerepei közé tartozott a Hogyan raboljunk ki egy bankot (2007), az Alvajárás (2008) és a Quid Pro Quo (2008).
2010-ben Stahl Max Matheson szerepét játszotta a Mirrors 2-ben, a Mirrors folytatásában, amelyet Victor Garcia rendezett és Matt Venne írt. Újabb filmjei közé tartozik az On the Inside (2010) és az Afghan Luke (2011), valamint az Away from Here (2014).
2019-ben Stahl alakította Glen Edward Rogers sorozatgyilkost a The Murder of Nicole Brown Simpson című filmben. A forgatás 2018 nyarán kezdődött, és a filmet 2019. december 9-én mutatták be az Egyesült Királyságban. A film alapjául Rogers állítása szolgált, miszerint ő maga ölte meg Nicole Brown Simpsont O. J. Simpson helyett, aki Brown volt férje és az első számú gyanúsított volt, akit korábban, 1995-ben bíróság elé állítottak és felmentettek a gyilkosság miatt. A filmet a kritikusok széles körben elítélték.
2019-ben Stahl szerepelt a The Lumineers új albumán alapuló III című rövidfilmben. Stahl Jimmy Sparks karakterét alakította, aki egy apa és szerencsejáték-függő.