| National Theatre Live: The Importance of Being Earnest (2025) as Jack Worthing |
| Marcello Mio (2024) as Colin |
| Wicked Little Letters (2024) as Constable Papperwick |
| Partygate (2023) as Josh Fitzmaurice |
| The Invitation (2022) as Oliver Alexander |
| Please Care! (2021) as Max |
| Falling for Figaro (2021) as Max Thistlewaite |
| Zog and the Flying Doctors (2021) as Zog (voice) |
| ABBA: In Their Own Words (2020) as Narrator |
| ABBA Forever: The Winner Takes It All (2019) as Narrator [UK version] (voice) |
| Steven Berkoff's Tell Tale Heart (2019) as Sunny |
| Zog (2018) as Zog (voice) |
| Mamma Mia! Here We Go Again (2018) as Young Harry |
| Fishboy (2018) as Fish Boy (voice) |
| Eric & Ernie's Home Movies (2017) as Narrator |
| Star Wars: The Last Jedi (2017) as Holdo's First Officer |
| Hampstead (2017) as Erik |
| The Roof (2016) as And Finially One More Fan |
| Kill Your Friends (2015) as John |
| The Wipers Times (2013) as Barnes |
| Les Misérables (2012) as Joly |
| A bloody muddle (2011) as Carl |
| Frank and Percy |
| Real Love (Yes, It's Real Love!) as Newman |