He played the role of Howard Stark in the film Captain America: The First Avenger. His other film credits include The History Boys, The Devil's Double, Warcraft and Mamma Mia! He later starred in the AMC series Preacher.
He made his first stage appearance in the play Mother Clap's Molly House.
He was in the coming-of-age film An Education.
He previously dated actress Amanda Seyfried, followed by a relationship with actress Ruth Negga. He has been dating Gemma Chan since 2018.
He played a supporting role in the film My Week with Marilyn, which starred Michelle Williams.