Hans første professionelle rollebesættelse var i Stranger at My Door (1991), selv om han havde spillet skuespil i børneteaterstykker, siden han var fire år gammel. Filmen The Man Without a Face fra 1993, med Mel Gibson i hovedrollen, var med til at sætte skub i hans karriere i en alder af 13 år. Året efter havde han en birolle i ensemblefilmen Safe Passage. I 1996 spillede han rollen som Puck i Benjamin Brittens opera A Midsummer Night’s Dream på The Metropolitan Opera i New York. I 1998 spillede han en dødsdømt ung soldat under Anden Verdenskrig i Stillehavskrigen i The Thin Red Line. Han fik igen succes med sin rolle i filmen In the Bedroom fra 2001, som havde Sissy Spacek som hans mor i hovedrollen, både ved kritikerne og i biografen. Han fik endnu et hit i Terminator 3: Rise of the Machines (2003) som John Connor (som erstatning for Edward Furlong i Terminator 2: Judgment Day) med Arnold Schwarzenegger og Claire Danes i hovedrollerne. I 2003 spillede han hovedrollen i HBO-serien Carnivàle, som tiltrak et loyalt publikum og fik rosende anmeldelser. Serien varede i to sæsoner og sluttede i 2006.
Stahl har spillet to skurke til gode anmeldelser: Bobby Kent i filmen Bully (2001) og Roark Jr./Yellow Bastard i Sin City (2005). Stahl gentog ikke sin rolle som John Connor i Terminator Salvation, hvor Christian Bale tog over i stedet. Stahl bemærkede, at filmens koncept er “et spring til fremtiden, så han vil være en del ældre”. Andre roller omfattede How to Rob a Bank (2007), Sleepwalking (2008) og Quid Pro Quo (2008).
I 2010 spillede Stahl hovedrollen som Max Matheson i Mirrors 2, efterfølgeren til Mirrors, instrueret af Victor Garcia og skrevet af Matt Venne. Blandt hans nyere film er On the Inside (2010) og Afghan Luke (2011) samt Away from Here (2014).
I 2019 portrætterede Stahl seriemorderen Glen Edward Rogers i The Murder of Nicole Brown Simpson. Optagelserne begyndte i løbet af sommeren 2018, og filmen blev udgivet i Storbritannien den 9. december 2019. Filmen var baseret på Rogers’ påstand om, at han selv havde dræbt Nicole Brown Simpson i stedet for O. J. Simpson, Browns eksmand og den hovedmistænkte, som tidligere var blevet dømt og frikendt for mordet i 1995. Filmen blev bredt anmelderrost af kritikerne.
I 2019 medvirkede Stahl i The Lumineers’ kortfilm, III, som er baseret på deres nye album. Stahl spillede karakteren Jimmy Sparks, som er far og spilafhængig.