| Year | Title | Role | Notes |
| 1993 | Saved by the Bell: The New Class | Crunch Grabowski | 2 episodes |
| 1994 | Beverly Hills, 90210 | Student Actor | Episode: "Divas" |
| 1995–1996 | Campus Cops | Wayne Simko | 9 episodes |
| 1995 | JAG | Dirk Grover | Episode: "Shadow" |
| 1996 | Boston Common | Nikolai | 2 episodes |
| Wings | Barry | Episode: "Too Beautiful for You" |
| 1999 | Doctors | Kevn Raives | 2 episodes |
| 2002 | Touched by an Angel | Doug | Episode: "Two Sides to Every Angel" |
| John Doe | Elvis Braithwaite | Episode: "Mind Games" |
| Taken | Adult Tom Clarke | 5 episodes |
| 2004 | Dr. Vegas | Steve | Episode: "All In" |
| 2005 | House | Sam McGinley | Episode: "The Mistake" |
| Wanted | Agent Jimmy McGloin | 13 episodes |
| 2005–2007 | Medium | Michael Benoit | 3 episodes |
| 2006 | Everwood | Ed Carnahan | Episode: "Across the Lines" |
| CSI: Miami | Detective Michael Lloyd | Episode: "Curse of the Coffin" |
| 2007 | Raines | Marco | Episode: "Pilot" |
| Heartland | Mark Evans | Episode: "Pilot" |
| 2008–2012 | Sons of Anarchy | Harry "Opie" Winston | 54 episodes |
| 2011 | Law & Order: Special Victims Unit | Doug Loveless | Episode: "Bombshell" |
| 2013 | King & Maxwell | Edgar Roy | 10 episodes |
| 2015–2017 | Bates Motel | Chick Hogan | 15 episodes |
| 2015 | Axe Cop | Chupacabra | Voice, episode: "Night Mission: The Extincter" |
| 2016–2017 | Outsiders | Li'l "Foster" Farrell | 26 episodes |
| 2019 | Bosch | Hector Bonner | 8 episodes |
| 2019–2020 | The Walking Dead | Beta | Recurring (Season 9)Main cast (Season 10)14 episodes |
| 2019 | Fear the Walking Dead | Episode: "Today and Tomorrow" (uncredited) |
| 2020–2022 | S.W.A.T. | Terry Luca | 4 episodes |
| 2021–present | Paradise City | Oliver Ostergaard | TV spinoff of American Satan |
| 2021–2022 | The Mysterious Benedict Society | Milligan | Main role |
| 2025 | The Abandons | Miles Elderton | Recurring role |