색스폰 연주자이며 술꾼인 영국인 출판인 발리 블레어(숀 코네리 분)는 소련 여행 중에 작가모임에서 단테(클라우스 마리아 브랜도어 분)라는 소련인을 만난다. 그후 단테는 친구인 카티아(미셀 파이퍼 분)에게 원고를 주면서 영국인 발리에게 출판을 의뢰하라고 한다. 그러나 원고는 영국 정보부에 흘러 들어가는데 소련의 로켓 기술수준이 너무 뒤쳐져 서방 세계에 위협이 되지 못한다는 충격적인 내용이다.
정보부의 네드(제임스 폭스 분)는 발리에게 원고의 저자인 단테의 정체를 알아내 줄 것을 요청한다. 발리는 소련에서 단테의 연락책인 카티아를 만나 단테가 소련군 최고의 과학자 야코프임을 알아낸다. 미국 CIA의 러셀(로이 슈네이더 분)은 발리를 야코프의 접선책으로 이용하여 야코프에게서 소련의 기밀을 뽑아내려고 결정적인 ‘쇼핑 목록’을 준비한다. 목록이란 소련에 대해서 알고 싶은 모든 질문을 수록한 질문서로, 소련측에 넘어가면 우방의 약점이 노출되는 치명적인 정보이기도 하다.
발리는 야코프를 만나 그의 순수한 이상에 감동되고, 카티아와 만나는 동안 그녀를 사랑하게 된다. KGB는 발리를 통해 서방의 정보를 얻기 위해 야코프의 사망을 숨기고 카티아와 위장 접선한다. 발리는 야코프의 정체가 KGB에게 탄로났고 따라서 카티아와 가족도 위험해진 것을 알고 비밀리에 KGB와 거래를 한다.