| Year | Title | Role | Notes |
| 2000 | Kiss Me Kate | Ben | Episode: "Kate's Niece" |
| 2001 | The Life and Adventures of Nicholas Nickleby | John Browdie | Television film |
| Jack and the Beanstalk: The Real Story | Bigger boy 1 | Miniseries; 2 episodes |
| 2001–2002 | Nice Guy Eddie | Frank Bennett | Main role |
| 2002 | Wild West | Bungee jump instructor | Episode: "Fear of Bungee" |
| Linda Green | Marko | Episode: "Viva Espana" |
| 2003 | Pollyanna | Timothy | Television film |
| Holby City | David Jones | Episode: "Endgame" |
| 2004 | Messiah III: The Promise | Dr. Phillip Ryder | 2 episodes |
| 2005 | Twisted Tales | Alex | Episode: "The Irredeemable Brain of Dr Heinrich Hunsecker" |
| Doctors | Ricky Adams | Episode: "Slim Chance" |
| Midsomer Murders | Lee Smeeton | Episode: "Midsomer Rhapsody" |
| Waking the Dead | Harry Taylor | Episode: "Straw Dog" |
| Love Soup | Mike | Episode: "Take Five" |
| ShakespeaRe-Told | Claudio | Episode: "Much Ado About Nothing" |
| 2005–2006 | No Angels | Justyn | 4 episodes |
| 2006 | EastEnders | Dr. Oliver Cousins | 29 episodes |
| Pulling | Sam | 2 episodes |
| 2006–2007 | Suburban Shootout | PC Haines | Main role |
| The Catherine Tate Show | Detective Sergeant Sam Speed | 2 episodes |
| 2007 | Casualty | Joe Kelsall | Episode: "Combat Indicators: Part 1" |
| Doctor Who | Tom Milligan | Episode: "Last of the Time Lords" |
| 2008 | Trial & Retribution | Nick Fisher | 2 episodes |
| The Passion | Apostle Philip | 4 episodes |
| Harley Street | Dr Ross Jarvis | 5 episodes |
| 2009 | Monday Monday | Steven McColl | Main role |
| 2009–2015 | Miranda | Gary Preston | Main role |
| 2010 | Dappers[citation needed] | Marco | Episode: "Proper Job" |
| Merlin | Cenred | 4 episodes |
| Accused | Neil McGray | Episode: "Liam's Story" |
| 2011 | Sugartown | Max Burr | Main role |
| The Fades | Mark Etches | Main role |
| 2012 | Silent Witness | Father Jacobs | Episode: "Fear" |
| Playhouse Presents | Bill | Episode: "The Other Woman" |
| Gates | Mark Pearson | 5 episodes |
| The Secret of Crickley Hall | Gabe Caleigh | Miniseries; 3 episodes |
| 2013 | Once Upon a Time | Robin Hood | S2 Episode 19 "Lacey" |
| Agatha Christie's Poirot | Detective Inspector Bland | Episode: "Dead Man's Folly" |
| Gothica | Victor Frankenstein | Television film |
| 2014 | Under Milk Wood | Mr. Ogmore | Television film |
| Rush | Dr. William Rush | Main role |
| 2015 | The Strain | Rob Bradley | Episode: "Identity" |
| 2016–2021 | Lucifer | Lucifer Morningstar / Michael Demiurgos | Main role |
| 2018 | Family Guy | Oscar Wilde (voice) | Episode: "V Is for Mystery" |
| Queen America | Andy | 2 episodes |
| 2019 | The Flash | Lucifer Morningstar | Episode: "Crisis on Infinite Earths: Part Three" |
| 2022 | Robot Chicken | Michelin Man (voice) | Episode: "May Cause Indecision...Or Not" |
| The Great North | Rick Chateau (voice) | Episode: "Dick, Rick, Groom Adventure" |
| 2024 | Exploding Kittens | Godcat (voice) | 9 episodes |