| Year | Title | Role | Notes |
| 1974 | Crown Court | Emmanuel Nyopa | 3 episodes: "The Probationer: Parts 1, 2 & 3" |
| 1974–1978 | Rising Damp | Philip Smith | Series regular; 28 episodes |
| 1975 | Six Days of Justice | Henry Vaughan | Episode: "The Good Samaritan" |
| Against the Crowd | Albert Sharpe II | Episode: "Carbon Copy" |
| Second City Firsts | Dave | Episode: "Club Havana" |
| 1976 | The XYY Man | Jomo Ibbon | Recurring role; 2 episodes |
| 1978 | Crown Court | Delroy Conway | Episode: "Black and Blue: Part 1" |
| 1979 | Play for Today | Jonathan Foot | Episode: "Billy" |
| 1981 | Triangle | Alan Lansing | Recurring role; 8 episodes |
| 1982 | Holding the Fort | Lieutenant Augustus Mrwebi | Episode: "All Boys Together" |
| 1983 | Live from Pebble Mill | Leroy | Episode: "Night Kids" |
| Crown Court | Charles Benjamin | Episode: "A Black and White Case: Part 1" |
| 1984 | Episode: "Oddball: Part 1" |
| Fairly Secret Army | Johnson | Episode: "When the Talking Had to Stop" |
| 1985–1986 | The Mysteries | Angel Gabriel | Miniseries; 3 episodes |
| 1985–1987 | Eyes | Nigel Beaumont | Series regular; 28 episodes |
| 1992 | Red Dwarf | Commander Binks | Episode: "Holoship" |
| Bookmark | Macbeth | Episode: "The Poet, the President and the Travelling Players" |
| Trainer | DI Raffe | Recurring role; 2 episodes |
| 1993 | Lovejoy | Felix | Episode: "Dainty Dish" |
| To Play the King | Graham Gaunt | Miniseries; 3 episodes |
| 1994 | The 10%ers | Fraser | Episode: "Awards" |
| 1995 | Chiller | John Meyburne | Episode: "Number Six" |
| 1997 | Grange Hill | Mr. Phillips | Recurring role; 8 episodes |
| Backup | Youden | Episode: "Touched" |
| 1999 | The Seventh Scroll | Colonel Nogo | Miniseries; 3 episodes |
| CI5: The New Professionals | Ndaka | Episode: "Tusk Force" |
| 2000 | Arabian Nights | Hari Ben Karim | Miniseries; 2 episodes |
| Trial & Retribution | Willard Pembroke | Episode: "Trial and Retribution IV (Part 2)" |
| 2001 | The Armando Iannucci Shows | Ivy Diner | Episode: "Mortality" (uncredited role) |
| 2002 | Believe Nothing | Chairman | Recurring role; 4 episodes |
| 2002–2003 | Manchild | Patrick | Recurring role; 4 episodes |
| 2003 | Holby City | Ethan Hope | Recurring role; 4 episodes |
| 2003–2005 | The Crouches | Bailey | Series regular; 12 episodes |
| 2006 | Doctor Who | The President | Episode: "Rise of the Cybermen" |
| 2006–2007 | New Street Law | Judge Ken Winyard | Series regular; 13 episodes |
| 2007 | Diamond Geezer | Hector | Miniseries; 1 episode: "Old School Lies" |
| 2009, 2014 | Law & Order: UK | Police Commissioner Eamonn Callaghan | Recurring role; 2 episodes |
| 2009–2010 | Casualty | Trevor | Recurring role; 7 episodes |
| 2011 | High | Bodleian / Crime | Episode: "Ghosts" |
| Waking the Dead | Gideon Barclay | 2 episodes: "Conviction: Parts 1 & 2" |
| This is Jinsy | Chief Thinker | Episode: "Vel" |
| 2011–Present | Death in Paradise | Commissioner Selwyn Patterson | Series regular; 77 episodes |
| 2012 | Lewis | Marcus Harding | Episode: "Generation of Vipers" |
| 2014 | Chasing Shadows | CS Harley Drayton | Miniseries; 4 episodes |
| 2015 | BBC Comedy Feeds: Sunny D | Lawrence | Miniseries; 4 episodes |
| 2016 | The Five | Ray Kenwood | Miniseries; 7 episodes |
| 2017 | Henry IX | Gilbert | Miniseries; 3 episodes |
| 2020–2022 | The World According to Grandpa | Grandpa | Series regular; 29 episodes |