| Year | Title | Role | Notes |
| 1947 | Hue and Cry | Schoolboy | Uncredited |
| The Life and Adventures of Nicholas Nickleby |
| 1959 | The Night We Dropped a Clanger | Briggs | |
| 1961 | Nothing Barred | Convict | |
| 1962 | We Joined the Navy | Short-changed U.S. seaman | Uncredited |
| 1962 | The Saint | Jacques (hotel concierge) | The Loaded Tourist, season 1, ep. 5 |
| 1973 | Hitler: The Last Ten Days | Walter Wagner | |
| 1974 | Frightmare | Barry Nichols | |
| Romance with a Double Bass | Musician Zhuchkov | |
| 1975 | Robin Hood Junior | Friar | |
| 1975–1979 | Fawlty Towers | Manuel | |
| 1976 | House of Mortal Sin | Man in Church | |
| 1977 | Are You Being Served? | Don Carlos Bernardo | |
| 1978 | What's Up Nurse! | Guido the waiter | |
| Revenge of the Pink Panther | Hercule Poirot | |
| 1981 | History of the World, Part I | Gerard | Segment: "The French Revolution" |
| 1988 | Consuming Passions | Jason | |
| 1989 | Asterix and the Big Fight | Ardeco | English version, voice |
| 1992 | The Gingerbread Man | The Gingerbread Man | |
| 1993 | The Mystery of Edwin Drood | Durdles | |
| 1994 | Taxandria | André / Superintendent | |
| Faust | | English version, voice |
| 1998 | The Legend of the Lost Keys | George Gardener | |
| 2001 | Nowhere in Africa | Mr. Rubens | |
| 2003 | Cheeky | TV announcer | |
| 2009 | Coronation Street | Ramsay Clegg | |
| 2010 | Terry Pratchett's Going Postal | Tolliver Groat | |
| 2012 | Run For Your Wife | Clumsy waiter | |
| Quartet | Bobby Swanson | |
| 2014 | Breaking the Bank | Jenkins | |
| 2015 | EastEnders | Cyril Bishop | |
| 2016 | Alice Through the Looking Glass | Mantel Clock | Uncredited, final film role |