The Assassin as Edward (1 episode)
2023
The Canterville Ghost as Henry Duke of Cheshire (voice)
2021
Leonardo as Stefano Giraldi (8 episodes)
2020
Dragon Rider as Ben (voice)
2018
Taskmaster as Self (8 episodes)
2017
Almost Friends as Charlie Brenner
2017
The Good Doctor as Dr. Shaun Murphy (126 episodes)
2017
Tour de Pharmacy as Young Adrian Baton
2016
Close to the Enemy as Victor Ferguson (7 episodes)
2014
Variety Studio: Actors on Actors as Self (1 episode)
2013
Justin and the Knights of Valour as Justin (voice)
2013
Bates Motel as Norman Bates (50 episodes)
2012
Honest Trailers as Charlie Bucket (archive footage) (1 episode)
2011
The Art of Getting By as George Zinavoy
2010
Arthur 3: The War of the Two Worlds as Arthur Montgomery
2010
Master Harold... and the Boys as Hally Ballard
2010
Astro Boy vs The Junkyard Pirates as Astro Boy (voice)
2009
Arthur and the Revenge of Maltazard as Arthur Montgomery
2009
Astro Boy as Astro Boy (voice)
2008
A Fox's Tale as Little Jack (voice)
2008
The Spiderwick Chronicles as Jared Grace / Simon Grace
2007
The Golden Compass as Pantalaimon (voice)
2007
August Rush as August Rush
2006
Arthur and the Invisibles as Arthur Montgomery
2006
A Good Year as Young Max Skinner
2005
Charlie and the Chocolate Factory: Becoming Oompa-Loompa as Charlie Bucket
2005
Charlie and the Chocolate Factory as Charlie Bucket
2004
Finding Neverland as Peter Llewelyn Davies
2004
Five Children and It as Robert
2004
Two Brothers as Raoul Normandin
2003
The Ellen DeGeneres Show as Self (1 episode)
2003
Jimmy Kimmel Live! as Self (1 episode)
2001
Women Talking Dirty as Sam
2001
Jack and the Beanstalk: The Real Story as Playground Son (2 episodes)
2001
The Mists of Avalon as Young Arthur (2 episodes)
2000
Happy Birthday Shakespeare as Steven Green
1999
The Early Show as Self (1 episode)
1997
The View as Self (1 episode)
1993
GMTV as Self (1 episode)
1988
LIVE with Kelly and Mark as Self - Guest (2 episodes)