Il a donné vie au rôle du Chasseur dans la série Once Upon a Time d'ABC de 2011 à 2013. Il a également été choisi pour incarner Christian Grey dans la franchise Cinquante nuances de Grey et Jan Kubis dans Opération Anthropoid. En 2018, il a été choisi pour incarner Will Scarlet dans le film Robin des Bois.
Il s'est produit dans un groupe de folk irlandais appelé les Sons of Jim, mais ils se sont séparés en 2008. Il a ensuite eu un contrat de mannequinat avec Select Model Management et une carrière de mannequin.
Il a tenu des rôles au cinéma dans Marie Antoinette et Ombres au soleil.
Il a épousé l'actrice Amelia Warner en 2013 et ensemble ils ont trois enfants, dont les filles aînées Dulcie et Elva.
Il a tenu un rôle secondaire aux côtés de Gillian Anderson dans la série policière anglo-irlandaise The Fall.