Haley ha aparecido en numerosas películas, como Damnation Alley, El día de la langosta, de John Schlesinger, y Losin’ It, así como en papeles de invitado en televisión. Un conocido actor infantil, protagonizó el papel de Kelly Leak en la comedia The Bad News Bears. También protagonizó The Bad News Bears en Breaking Training y The Bad News Bears Go to Japan.
Interpretó a Moocher en la aclamada película de Peter Yates de 1979 Breaking Away y más tarde en la corta serie de televisión del mismo nombre. A lo largo de la década de 1970, interpretó a menudo a un inadaptado duro, enfadado, con granos y con el pelo largo; aunque en su debut en el largometraje, la película poco convencional de 1972, The Outside Man, interpretó a Eric, un chico aparentemente tan desesperadamente solo que intenta impresionar al asesino de la mafia que lo tiene a él y a su madre (Georgia Engel) como rehenes. Haley también rodó un piloto para una versión estadounidense de la popular comedia británica The Young Ones, titulada ¡Oh, no! ¡THEM no! En 1974 interpretó a Norm, un niño inadaptado, en el duodécimo episodio del programa infantil de los sábados por la mañana, ¡Shazam! Se rumorea que en 1984, el amigo de Haley, Johnny Depp, le acompañó a las audiciones para Pesadilla en Elm Street, de Wes Craven; en lugar de que Haley fuera elegido para un papel, fue Depp quien fue visto por el director Craven, que le preguntó si quería leer para un papel. Haley había hecho una audición para el papel del antagonista de la película, Freddy Krueger, pero terminó perdiendo ante Robert Englund para la versión de 1984 de la película.
La carrera de actor de Haley estuvo inactiva durante la mayor parte de la década de 1990 y principios de la de 2000, cuando se trasladó a San Antonio, y finalmente se dedicó a la dirección, encontrando el éxito como productor y director de anuncios de televisión.
Con la recomendación de Sean Penn, Haley volvió a actuar en 2006, apareciendo primero en Todos los hombres del rey, de Steven Zaillian, junto a Penn como Sugar Boy, su guardaespaldas, antes de ofrecer una interpretación aclamada por la crítica como delincuente sexual recién puesto en libertad condicional en Little Children, de Todd Field. Declaró que su preparación para el papel estuvo muy influida por la relación que compartían su madre y su hermano True, que luchó contra una adicción a la heroína antes de morir de sobredosis. Haley fue nominado al Oscar al mejor actor de reparto por esta interpretación y en 2007 fue invitado a formar parte de la Academia de las Artes y las Ciencias Cinematográficas.
Haley es propietario de una productora, JEH Productions, en San Antonio. En 2008, apareció en Semi-Pro y protagonizó Criaturas aladas con Kate Beckinsale, Guy Pearce y Dakota Fanning. También protagoniza la adaptación de Zack Snyder de la novela gráfica de Alan Moore, Watchmen, en 2009, en el papel de Rorschach, un justiciero enmascarado que trabaja para encontrar la identidad de un asesino disfrazado de héroe, un papel que le valió a Haley los elogios de muchos críticos. La película también lo reunió con el coprotagonista de Little Children, Patrick Wilson, que interpretó a Nite Owl II, antiguo compañero de Rorschach. También en 2010, Haley apareció en Shutter Island, dirigida por Martin Scorsese, interpretando a un paciente de un hospital para criminales dementes.
Haley interpretó el papel de Freddy Krueger en el remake de A Nightmare on Elm Street. Ha firmado para interpretar el papel en tres entregas de la serie.
Haley fue un habitual de la serie Human Target como Guerrero, un aliado del protagonista, Christopher Chance. La serie se estrenó el 17 de enero de 2010 en Fox y duró dos temporadas antes de ser cancelada en mayo de 2011.
Interpretó a Willie Loomis en la adaptación cinematográfica de 2012 de Sombras tenebrosas, dirigida por Tim Burton, e interpretó al vicepresidente de los Estados Confederados Alexander H. Stephens en Lincoln, dirigida por Steven Spielberg. Ha interpretado al supervillano «The Terror» en el reinicio de Amazon de The Tick.