Il est né à Stockholm, en Suède, de parents britanniques et suédois et a vécu au Royaume-Uni, en Éthiopie et en Afrique du Sud.
Ses travaux à la télévision britannique incluent le rôle du professeur d'éducation physique sans détour Chris Malachay dans le feuilleton scolaire de la BBC de longue durée Grange Hill, de 2003 à 2006. Auparavant, il avait interprété Joe Fisher, le partenaire australien du constructeur gay Jason Kirk, dans le soap ITV1 Emmerdale. Il a terminé le tournage de Botched aux côtés de Stephen Dorff en 2006, et plus récemment a joué l'entrepreneur Hermann Hauser dans la série dramatique comique de la BBC Micro Men. En décembre 2010, il a joué Joachim von Ribbentrop dans la reprise de Upstairs, Downstairs par BBC Wales et Masterpiece.
Au théâtre, il a joué dans West Side Story réalisée par Arthur Laurents, South Pacific, dirigée par Trevor Nunn, et a créé le rôle d'Ashley Wilkes dans l'adaptation musicale de West End de Autant en emporte le vent de Trevor Nunn en 2008. Il a également joué dans Rookery Nook à la Menier Chocolate Factory.
Il a créé le rôle de l'Homme de Fer dans la production de West End du Magicien d'Oz d'Andrew Lloyd Webber. Il incarne également Hickory, le valet de ferme de la tante Em et l'oncle Henry, qui est l'homologue de l'Homme de Fer au Kansas.
En 2013, il s'est installé à New York, où vivent maintenant sa femme Caroline, son fils Miles et sa fille Iris, et a joué dans la production Off-Broadway de Peter et le Chasseur d'étoiles. En 2016, il a joué dans l'épisode final de la première saison de la série Showtime Billions intitulé « La Conversation ». En 2021, il a joué le rôle de Clarke dans Hollyoaks.
En 2019, il a joué le Grincheux dans la tournée britannique du Grincheux : le musical de Dr. Seuss.
En 2023, il a joué le gendarme Calloway dans une version musicale de La Troisième Homme à Londres.