Ben Foster, élevé avec son frère Jon Foster par des parents restaurateurs, a très tôt le goût pour la comédie. Dès l'âge de douze ans, il écrit, réalise et joue dans une pièce de théâtre qui obtient un prix au niveau international. Quatre ans plus tard, en 1996, il quitte le lycée et s'installe à Los Angeles où il est immédiatement engagé pour jouer dans la série télévisée Disney Chahut au Bahut. La même année, il débute sur grand écran avec un petit rôle dans le thriller Kounterfeit.
C'est en 1999 que Ben Foster obtient son premier rôle d'importance avec le Liberty Heights de Barry Levinson, où il incarne un rebelle adolescent juif amoureux d'une fille noire. Un rôle torturé qu'il contraste très vite avec Allison Forever (2001), comédie qui lui vaut son premier rôle en tête d'affiche face à Kirsten Dunst. Dès lors, il multiplie les seconds rôles de qualité dans des longs métrages aux genres divers, du thriller (11 : 14) au drame (Northfork), en passant par l'adaptation de comic-book (The Punisher, X-Men l'affrontement final) et la comédie (Big Trouble). De 2003 à 2005, il tient un rôle récurrent dans la série acclamée de HBO Six Feet Under.
En 2005, les choses s'accélèrent pour l'acteur qui kidnappe Bruce Willis dans le thriller Otage. Après ce rôle marquant, le comédien fait de ces personnages sombres et brutaux une constante dans sa carrière, comme dans le drame adapté d’un fait divers (Alpha Dog, 2007), le western (3h10 pour Yuma, 2008), le film d’horreur (30 jours de nuit, id.) ou encore le thriller d’action (Le Flingueur, 2011), tout en campant un astronaute amnésique dans Pandorum (2009), et en prêtant main forte à Mark Wahlberg pour protéger sa famille dans Contrebande (2012).