| Year | Title | Role | Notes |
| 1996 | Frasier | Actor playing Franklin | Episode: "The Show Where Diane Comes Back" |
| Murder One | Officer Carl Bickley | Episode: "Chapter Thirteen" |
| The Client | Frank | Episode: "Damn Yankees" |
| Voice from the Grave | Prosecutor O'Gane | Television film |
| A Friend's Betrayal | Mr. Franks |
| 1996, 1997 | Life's Work | District Attorney Agee / Crazy Larry | 2 episodes |
| 1997–2004 | The Drew Carey Show | Steve Carey | Main role (seasons 6–8), recurring role (seasons 3–5), guest (season 9), 72 episodes |
| 1997 | The Practice | Dr. Robert Larson | Episode: "Search and Seizure" |
| The Visitor | Joe York | Episode: "Going Home" |
| 1998 | From the Earth to the Moon | Robert R. Gilruth | 2 episodes |
| 1999 | Star Trek: Voyager | Gerald Moss | Episode: "11:59" |
| Late Last Night | Sgt. Van Wyck | Television film |
| Tuesdays with Morrie | Walter Moran |
| 2000 | The Fugitive | Raynor | Episode: "Pilot" |
| The West Wing | Jack | Episode: "Galileo" |
| 2001 | Gideon's Crossing | Sonny Green | Episode: "The Race" |
| 2002 | Live from Baghdad | John Holliman | Television film |
| 2003 | The Brotherhood of Poland, New Hampshire | Mayor Garrett Shaw | 7 episodes |
| 2005 | Carnivàle | Varlyn Stroud | 12 episodes |
| American Dad! | Mr. Simms | Voice; episode: "Stannie Get Your Gun" |
| 2005–2006 | Close to Home | Steve Sharpe | Main role |
| 2007–2008 | K-Ville | Captain James Embry | Main role |
| 2007 | Big Love | Officer Chuck Tuttle | 2 episodes |
| 2009 | Lie to Me | Mr. Reed | Episode: "Truth or Consequences" |
| Monk | Kurt Pressman | Episode: "Happy Birthday, Mr. Monk" |
| CSI: Crime Scene Investigation | Buddy Arnold | Episode: "Bloodsport" |
| 2010 | How to Make It in America | Larry | Episode: "Keep on Truck'n" |
| 2010–2012 | The Glades | Mike Ogletree | 2 episodes |
| 2011–2013 | Body of Proof | Bud Morris | Main role |
| 2013 | Do No Harm | Will Hayes | 10 episodes |
| 2013–2014 | Comedy Bang! Bang! | Ned Dooley | 2 episodes |
| 2014 | House of Lies | Gil Selby | 2 episodes |
| The Americans | Fred | 6 episodes |
| Manhattan | Daniel Ellis | 2 episodes |
| Us & Them | Ed | Episode: "Coeds & Carburetors" |
| 2014–2015 | American Horror Story: Freak Show | Twisty the Clown | 5 episodes |
| 2015 | The Walking Dead | Eastman | Episode: "Here's Not Here" |
| 2015–2016 | American Horror Story: Hotel | John Wayne Gacy | 2 episodes |
| 2016 | Billions | Mr. Gilbert | Episode: "The Punch" |
| 2016–2017 | Turn: Washington's Spies | James Rivington | 8 episodes |
| 2017 | American Horror Story: Cult | Twisty the Clown | 2 episodes |
| Channel Zero: The No-End House | John Sleator | 6 episodes |
| 2018 | The Handmaid's Tale | Dan | Episode: "Unwomen" |
| Crawford | Owen | 12 episodes |
| One Dollar | Bud Carl | Main role |
| The Good Cop | Sherman Smalls | Episode: "Who Is the Ugly German Lady?" |
| 2019 | Veep | Lloyd Hennick | 3 episodes |
| American Horror Story: 1984 | Benjamin Richter / Mr. Jingles | 9 episodes |
| 2019–2020 | Perfect Harmony | Pastor Magnus | 3 episodes |