Zijn eerste professionele casting was in Stranger at My Door (1991), hoewel hij al vanaf zijn vierde jaar in kindertoneelstukken acteerde. De film The Man Without a Face (1993), met Mel Gibson in de hoofdrol, hielp zijn carrière op 13-jarige leeftijd een boost te geven. Het jaar daarop had hij een bijrol in de ensemblefilm Safe Passage. In 1996 speelde hij de rol van Puck in Benjamin Brittens opera A Midsummer Night’s Dream bij The Metropolitan Opera in New York. In 1998 speelde hij een gedoemde jonge soldaat tijdens de Tweede Wereldoorlog in The Thin Red Line. Hij scoorde opnieuw kritieken en kassuccessen met zijn rol in de film In the Bedroom uit 2001, met Sissy Spacek als zijn moeder in de hoofdrol. Hij scoorde nog een kassucces in Terminator 3: Rise of the Machines (2003) als John Connor (die Edward Furlong verving in Terminator 2: Judgment Day), met Arnold Schwarzenegger en Claire Danes in de hoofdrollen. In 2003 speelde hij de hoofdrol in de HBO-serie Carnivàle, die een trouw publiek trok en lovende kritieken kreeg. De serie duurde twee seizoenen en eindigde in 2006.
Stahl heeft twee schurken gespeeld die goed werden ontvangen: Bobby Kent in de film Bully (2001) en Roark Jr./Yellow Bastard in Sin City (2005). Stahl speelde zijn rol als John Connor niet opnieuw in Terminator Salvation, maar Christian Bale nam zijn rol over. Stahl merkte op dat het concept van de film “een sprong naar de toekomst was, dus hij zal een stuk ouder zijn”. Andere rollen waren onder meer How to Rob a Bank (2007), Sleepwalking (2008), en Quid Pro Quo (2008).
In 2010 speelde Stahl als Max Matheson in Mirrors 2, het vervolg op Mirrors, geregisseerd door Victor Garcia en geschreven door Matt Venne. Onder zijn meer recente films zijn On the Inside (2010) en Afghan Luke (2011), en Away from Here (2014).
In 2019 portretteerde Stahl seriemoordenaar Glen Edward Rogers in The Murder of Nicole Brown Simpson. Het filmen begon in de zomer van 2018 en de film werd uitgebracht in het Verenigd Koninkrijk op 9 december 2019. De film was gebaseerd op Rogers’ bewering dat hij zelf Nicole Brown Simpson had vermoord in plaats van O. J. Simpson, de ex-man van Brown en de hoofdverdachte die eerder was berecht en vrijgesproken voor de moord in 1995. De film werd alom geprezen door critici.
In 2019 verscheen Stahl in de korte film van The Lumineers, III, die is gebaseerd op hun nieuwe album. Stahl speelde het personage Jimmy Sparks, die een vader en gokverslaafde is.