Haley speelde in talrijke films, waaronder Damnation Alley, John Schlesingers The Day of the Locust en Losin’ It, en gastrollen op tv. Hij was een bekend kindacteur en speelde als Kelly Leak in de komedie The Bad News Bears. Hij speelde ook in The Bad News Bears in Breaking Training en The Bad News Bears Go to Japan.
Hij speelde Moocher in Peter Yates’ veelgeprezen film Breaking Away uit 1979 en later in de gelijknamige TV-serie met een kort leven. In de jaren 1970 speelde hij vaak een stoer, boos, pukkelig, langharig buitenbeentje; hoewel hij in zijn speelfilmdebuut, de offbeat film The Outside Man uit 1972, Eric speelde, een jongen die blijkbaar zo wanhopig eenzaam is dat hij probeert indruk te maken op de maffiamoordenaar die hem en zijn moeder (Georgia Engel) gijzelt. Haley nam ook een pilootfilm op voor een Amerikaanse versie van de populaire Britse komedie The Young Ones, getiteld Oh, No! Niet THEM!. In 1974 speelde hij Norm een buitenbeentje in de 12e aflevering van de zaterdagochtend kindershow, Shazam! Het gerucht gaat dat in 1984, Haley’s vriend Johnny Depp hem vergezelde naar audities voor Wes Craven’s A Nightmare on Elm Street; in plaats van dat Haley werd gekozen voor een rol, was het Depp die werd gespot door regisseur Craven, die hem vroeg of hij zou willen lezen voor een rol. Haley had oorspronkelijk auditie gedaan voor de rol van de antagonist van de film, Freddy Krueger, maar verloor het uiteindelijk van Robert Englund voor de 1984 versie van de film.
Haley’s acteercarrière ging slapende gedurende het grootste deel van de jaren 1990 en begin 2000, toen hij verhuisde naar San Antonio, en uiteindelijk wendde zich tot het regisseren, het vinden van succes als producent en regisseur van tv-commercials.
Op aanraden van Sean Penn keerde Haley in 2006 terug naar het acteren. Hij speelde eerst in All the King’s Men van Steven Zaillian naast Penn als Sugar Boy, zijn lijfwacht, voordat hij een veelgeprezen rol speelde als een onlangs voorwaardelijk vrijgelaten zedendelinquent in Todd Fields Little Children. Hij verklaarde dat zijn voorbereiding op de rol sterk werd beïnvloed door de relatie tussen zijn moeder en zijn broer True, die vocht tegen een heroïneverslaving voordat hij stierf aan een overdosis. Haley werd genomineerd voor een Academy Award voor Beste Bijrol voor deze vertolking en werd in 2007 uitgenodigd om lid te worden van de Academy of Motion Picture Arts and Sciences.
Haley is eigenaar van een productiebedrijf, JEH Productions, in San Antonio. In 2008 was hij te zien in Semi-Pro en speelde hij de hoofdrol in Winged Creatures met Kate Beckinsale, Guy Pearce en Dakota Fanning. Hij speelt ook in Zack Snyder’s 2009 bewerking van de Alan Moore graphic novel, Watchmen, als Rorschach, een gemaskerde burgerwacht die de identiteit van een gekostumeerde heldenmoordenaar probeert te achterhalen, een rol die Haley lof opleverde van vele recensenten. De film herenigde hem ook met Little Children co-ster Patrick Wilson die Nite Owl II speelde, de voormalige partner van Rorschach. Ook in 2010, Haley verscheen in Shutter Island, geregisseerd door Martin Scorsese, het spelen van een patiënt van een ziekenhuis voor de crimineel krankzinnigen.
Haley speelde de rol van Freddy Krueger in de A Nightmare on Elm Street remake. Hij heeft getekend om de rol te spelen in drie afleveringen in de serie.
Haley was een serie regular op Human Target als Guerrero, een bondgenoot van het hoofdpersonage, Christopher Chance. De serie ging op 17 januari 2010 in première op Fox, en duurde twee seizoenen voordat het in mei 2011 werd gecanceld.
Haley speelde Willie Loomis in de 2012 verfilming van Dark Shadows, geregisseerd door Tim Burton, en speelde de Confederate States Vice President Alexander H. Stephens in Lincoln, geregisseerd door Steven Spielberg. Hij speelde de superschurk “The Terror” in Amazon’s reboot van The Tick.