2022
The Peripheral as Lev Zubov (6 episodes)
2019
Ford v Ferrari as Roy Lunn
2019
Turn Up Charlie as David (8 episodes)
2018
The Romanoffs as Jack (1 episode)
2018
The Romanoffs as Jack Edgar (1 episode)
2018
New Amsterdam as Dr. Zach Ligon (7 episodes)
2018
Lost in Space as Ben Adler (1 episode)
2018
The Etruscan Smile as Ian
2014
Not Safe for Work as Killer
2014
TURN: Washington's Spies as Major John Andre (20 episodes)
2014
The Musketeers as Marsac (2 episodes)
2013
Austenland as Mr. Henry Nobley
2011
Captain America: The First Avenger as James Montgomery Falsworth
2011
The Night Watch as Robert Fraser
2009
Goal III: Taking on the World as Liam Adams
2009
Blood: The Last Vampire as Luke
2008
Telstar: The Joe Meek Story as Heinz Burt
2007
Northanger Abbey as Henry Tilney
2007
The Shadow in the North as Fred Garland
2006
The Ruby in the Smoke as Frederick Garland
2006
O Jerusalem as Bobby Goldman
2006
The Secret Life of Mrs. Beeton as Sam Beeton
2005
A Life in Suitcases as Tulse Luper
2005
Pure Mule as Tom Stafford (2 episodes)
2005
To the Ends of the Earth
2005
To the Ends of the Earth as Lieutenant Deverel (3 episodes)
2004
Agatha Christie's Marple as Paul Osbourne (1 episode)
2004
Close to Greenaway as Self
2004
The Tulse Luper Suitcases, Part 3: From Sark to the Finish as Tulse Luper
2004
The Tulse Luper Suitcases, Part 2: Vaux to the Sea as Tulse Luper
2003
The Tulse Luper Suitcases: Antwerp as Tulse Luper
2003
The Tulse Luper Suitcases, Part 1: The Moab Story as Tulse Luper
2002
K-19: The Widowmaker as Andrei
2002
The Intended as Hamish Winslow
2001
Jack and the Beanstalk: The Real Story as Young Jack (2 episodes)
2001
Last Orders as Young Jack
2001
Waking the Dead as Adam Western (2 episodes)
2001
Perfect Strangers as Richard (3 episodes)
2001
The Life and Adventures of Nicholas Nickleby as Frank Cheeryble
2000
The Railway Children as Jim
1992
Heartbeat as Jonno (1 episode)
1989
Agatha Christie's Poirot as Simon Doyle (1 episode)