Ben Foster a commencé à jouer très jeune à Fairfield, dans l’Iowa, en tenant notamment le rôle principal de « You’re a Good Man, Charlie Brown » à 11 ans. Il a fait l’année suivante ses débuts d’auteur et de réalisateur. A 13 ans, il a joué Tucker James dans la série télévisée Disney « Flash Forward ». Il a également été l’interprète du pilote de « Freaks and Geeks ».
Barry Levinson lui a confié son premier rôle au cinéma dans
Liberty Heights en 1999. Il a ensuite été l’interprète de
Get Over It de Tommy O’Haver, avec Kirsten Dunst.
Il a joué par la suite dans
Big Trouble de Barry Sonnenfeld,
Northfork des frères Polish, avec James Woods, Anthony Edwards, Daryl Hannah et Nick Nolte, plébiscité à Sundance et
Phone Game de Joel Schumacher. On l’a également vu dans
The Punisher de Jonathan Hensleigh ou
Alpha Dog de Nick Cassavetes, avec Justin Timberlake et Emile Hirsch, présenté au Festival de Sundance 2006.
Côté télévision, il a joué dans
Six Feet Under et dans les téléfilms
The Laramie Project et
Bang, Bang, You’re Dead pour lequel il a obtenu un Daytime Emmy Award 2003.
En 2006, on le retrouve à l’affiche de
X-men L'Affrontement Final de Brett Ratner. En 2007 il joue dans
30 Jours De Nuit, de David Slade aux côtés de Josh Hartnett. Après plusieurs petits rôles dans les films
3h10 Pour Yuma,
Pandorum ou encore
Robin Des Bois,
Ben Foster donne la réplique à Jason Statham dans le film d'action de Simon West
Le Flingueur en 2010.