Horsfall appeared in many television and film roles including: Pathfinders to Mars (1960), the second sequel to Target Luna, Guns at Batasi (1964), On Her Majesty's Secret Service (1969), Enemy at the Door (ITV, 1978–1980), Gandhi (1982), an episode of The Jewel in the Crown (ITV, 1984), the character Frankland in The Hound of the Baskervilles (ITV, 1988), and the character Balliol in Braveheart (1995). His other roles included portraying British barrister Melford Stevenson in a 1980 Granada Television dramatisation of the 1955 case of Ruth Ellis.
Horsfall made several guest appearances in the BBC science fiction television series Doctor Who. His first was as Lemuel Gulliver in The Mind Robber (1968). His other appearances were as a Time Lord in The War Games (1969), Taron in Planet of the Daleks (1973), and Chancellor Goth in The Deadly Assassin (1976). All four of these serials were directed by David Maloney. Many years later he returned to Doctor Who, appearing in Davros – a Doctor Who audio drama produced by Big Finish Productions.
Horsfall also appeared, with a Swedish accent, as Christianson in an episode of The Persuaders! titled "The Morning After" during 1972.