| Year | Title | Role | Notes |
| 1970 | The Wednesday Play | Jake | Season of the Witch |
| Cannabis | Paul | Film |
| The Females (de) | Mann (uncredited) | Film |
| 1971 | See No Evil | Jacko | Film |
| 1972 | What Became of Jack and Jill? | Johnnie Tallent | Film |
| Till Death Us Do Part | Self | 1972 Christmas Special |
| 1974 | Softly, Softly: Taskforce | Slim | Episode: "Pop Goes the Weasel" |
| Stardust | Johnny | Film |
| 1975 | Listzomania | Richard Wagner | Film |
| Three For All | Gary | Film |
| Tommy | Cousin Kevin | Film |
| 1976 | Play For Today | Kevin | Early Struggles |
| 1978 | Sgt. Pepper's Lonely Hearts Club Band | Dougie Shears | Film |
| 1979 | The World is Full of Married Men | Gem Gemini | Film |
| Two Up, Two Down | Jimmy | 6 episodes |
| Yesterday's Hero | Clint | Film |
| 1980 | CHiPs | Malcolm | Episode: "Thrill Show" |
| Ladykillers | Frank Hogg | Film |
| The Jazz Singer | Keith Lennox | Film |
| 1981 | Plays for Pleasure | Sam | A Little Roccoco |
| 1982 | Alicja | Cheshire Cat/ Caterpillar | Film |
| Nutcracker | Mike McCann | Film |
| 1983 | Doubting Thomas | TBC | TV movie |
| Invitation to the Wedding | David Anderson | Film |
| 1983–6 | Just Good Friends | Vince Pinner | 22 episodes |
| 1985 | Lyrics by Tim Rice | Blondel | Segment: "Least of My Troubles" (Video) |
| 1987 | Even Break | Butch | Short |
| 1987–8 | Bust | Neil Walsh | 12 episodes |
| 1987–8 | Creepy Crawlies | Narrator | 39 episodes |
| 1987–93 | The Adventures of Spot | Narrator | 25 episodes |
| 1989–90 | Close to Home | James Shepherd | 19 episodes |
| 1995 | Spot's Magical Christmas | Sam (voice) | UK version (Video) |
| 1999 | Calling All Toddlers | Narrator | Segment: "Spot Stays Overnight" (Video) |
| 2000 | Burnside | Ronnie Buchan | 4 episodes |
| Doctors | Martin Stockton | Episode: "Love You Madly" |
| Sunburn | David Janus | 6 episodes |
| 2003 | The Bill | Julian Walker | Episode: "Blaze of Glory" |
| 2006 | Doctors | Terry | Episode: "Half Empty" |
| Everything But the Kitchen Sink | Dr. Heinrich Vandoor (voice) | Short |
| Heartbeat | Sven Larson | Episode: "Dead Men Do Tell Tales" |
| Holby City | Rob Logan | Episode: "Flight of the Bumblebee" |
| 2008 | Consuming Passion: 100 Years of Mills & Boon | Alan Boon | TV movie |
| The Royal Today | Mr. Woods | 48 episodes |
| 2010 | Missing | Eddie Broad | 1 episode |
| 2012 | Doctors | Pete Power | Episode: "Wanton Desire" |
| 2013 | Dear World: A Musical Fable | Sewerman | Video |
| 2015–16 | EastEnders | Gavin Sullivan | 31 episodes |
| 2016 | A Prominent Patient | Neville Chamberlain | Film |
| The Gridiron | Mr. Stayner | Film |