The beginning of the film resembles the short story, in which Bond acts as a counter-sniper to protect a Soviet defector, Georgi Koskov. He tells Bond that General Pushkin, head of the KGB, is systematically killing British and American agents. When Koskov is seemingly snatched back, Bond follows him across Europe, Morocco and Afghanistan.
- Timothy Dalton as James Bond: an MI6 agent assigned to look into the deaths of and conspiracies against several of his allies.
- Maryam d’Abo as Kara Milovy: Koskov’s girlfriend and later Bond’s love interest.
- Joe Don Baker as Brad Whitaker: An American arms dealer and self-styled general. Baker called his character “a nut” who “thought he was Napoleon”.
- Art Malik as Kamran Shah: a leader in the Afghan Mujahideen.
- John Rhys-Davies as General Leonid Pushkin: The new head of the KGB, replacing General Gogol.
- Jeroen Krabbé as General Georgi Koskov: Whitaker’s ally and a renegade Soviet general.
- Andreas Wisniewski as Necros: Koskov’s henchman, who poses repeated threats to Bond.
- Thomas Wheatley as Saunders: Bond’s ally.
- Robert Brown as M: The head of MI6.
- Desmond Llewelyn as Q: MI6’s “quartermaster”, who supplies Bond with multi-purpose vehicles and gadgets useful in the latter’s mission.
- Geoffrey Keen as Frederick Gray: The British Minister of Defence
- Caroline Bliss as Miss Moneypenny: M’s secretary.
- John Terry as Felix Leiter: A CIA agent and ally to Bond.
- Walter Gotell as General Gogol: The retired head of the KGB, now a diplomat shown in a cameo at the end of the film.
- Virginia Hey as Rubavitch: General Leonid Pushkin’s mistress in Morocco
- Julie T. Wallace as Rosika Miklos: James Bond’s contact in Bratislava, Czechoslovakia who works at the TransSiberian Pipeline.
- Nadim Sawalha cameos as a police chief in Tangiers. Sawalha also appeared in a previous 007 film, The Spy Who Loved Me (1977), as Aziz Fekkesh.