Became known to audiences for playing Bucky Barnes in Captain America: The First Avenger. His role in the miniseries Political Animals earned him a Critics' Choice Television Award for Best Performance by a Supporting Actor. In 2015, he portrayed Chris Beck in the film The Martian.
He spent a year abroad studying theater at Shakespeare's Globe Theatre in London.
He did all his own stunts in the movie The Covenant.
He dated his co-stars Leighton Meester from 2008 to 2010 and Jennifer Morrison from 2012 to 2013. In 2014, he began dating actress Margarita Levieva; but they broke up in 2016. He and actress Alejandra Onieva started dating in 2020.