While visiting the grave of his deceased wife, Tracy (whom was killed in the film On Her Majesty's Secret Service), James Bond (Roger Moore) is called back to MI6 headquarters. A helicopter arrives to transport him. During the flight the pilot is killed by electricity that surges through his headset and a familiar voice begins to taunt Bond over the chopper's loudspeaker; it is that of Blofeld, Bond's deadliest villain. As Bond struggles to gain control of the chopper, he notices a man in a motorized wheelchair nearby. Bond manages to reach the pilot's seat but cannot operate the chopper. Blofeld, controlling the chopper with a small console, flies it into a giant foundry building, with the intention of letting it crash. Bond sees that a set of cables have been wired to the chopper and he rips them out, regaining control of it. He flies after Blofeld and hooks his wheelchair on the end of the chopper's landing skid. Though Blofeld pleads for his life, Bond vengefully drops him down a nearby smokestack.
In the Adriatic Sea, a fishing ship, the St. Georges, trawls off the coast of Albania. Inside is a hidden control room for British defense. The spy ship is equipped with ATAC (Automatic Targeting and Attack Communicator), a valuable defensive and offensive device that the Soviet Union would like to obtain. When the ship's decoy fishing crew hauls in a net, it brings with it an old anti-warship mine which explodes, sinking the St. Georges. At MI6, M's temporary replacement, Bill Tanner (James Villiers), is informed of the incident. When he asks how deep the water is off the coast of Albania, he is gravely told it isn't "deep enough." Hoping to find the St. Georges and the ATAC discreetly, Tanner orders a British underwater archaeologist, Timothy Havelock (Jack Hedley), to find the sunken ship. Meanwhile, Tanner's KGB counterpart, General Anatole Gogol (Walter Gotell), is told that the ATAC is in play, and instructs an unknown contact to procure it for him.
Havelock's daughter, Melina (Carole Bouquet), arrives by plane at her father's yacht near the site of the St. Georges' sinking after taking a vacation in France. While she reunites with her parents, the plane she arrived in suddenly strafes the yacht with a burst of machine-gun fire. Both Havelock and his wife are killed, however, Melina is unharmed, a look of despair and rage on her face.
In London, James Bond is called into M's office to meet with Tanner and Minister of Defense, Frederick Gray (Geoffrey Keen). He is ordered to find the ATAC, his first lead being the man, Hector Gonzales (Stefan Kalipha), a pilot and Cuban national who killed the Havelocks. Tanner orders Bond to find Gonzales near Madrid and interrogate him for information.
Bond goes to Gonzales' home where he's throwing a party. Bond observes that Gonzales is meeting with a mysterious man (Michael Gothard) in an elegant suit and octagonal wire-framed glasses, and deduces that he is paying Gonzales for the assassination he performed. Bond is captured by a security guard and brought to Gonzales who identifies him immediately as British Secret Service and orders him taken away. As he dives into his pool, Gonzales is struck and killed by a crossbow arrow fired by an unseen assassin. The distraction allows Bond to escape. The man with the glasses does not intervene and instead leaves with the money that he intended to pay Gonzales with. As Bond makes his escape, one of the security guards chasing him is also killed by a crossbow bolt. The shooter is revealed to be Melina Havelock, who has been seeking revenge for the deaths of her parents and had hired a private detective to find Gonzales. Before they can escape in Bond's Lotus Esprit, it explodes when a guard tries to break one of its windows. Bond and Melina use her car, a small, clunky Citroen, in a furious chase where they evade Gonzales' men in a wild chase through a small town and through an olive orchard.
Back in London, Bond reports back to MI6, where the upset Tanner reprimands him for failing to obtain any information from Gonzales. However, Bond, with Q's assistance, uses a highly sophisticated database called an Identigraph, to identify and locate the mysterious payoff man. The man is revealed to be Emile Leopold Locque, a Belgian assassin who has worked as an enforcer for numerous crime syndicates. The most recent intel suggests he is operating in Cortina d'Ampezzo in Northern Italy.
Bond travels to Cortina and meets Luigi Ferrara (John Moreno), an Italian Secret Service agent who tells him that Locque may be associated with an organization called the White Dove (indicated by the pin Locque and it's members wear). He directs Bond to his most reliable contact in the Greek Underworld, Aris Kristatos (Julian Glover). Kristatos identifies the White Dove's leader as Milos Columbo (Topol), the kingpin of Greece's heroin trade. Kristatos asks Bond to be an escort for his young skating protege, Bibi Dahl (Lynn-Holly Johnson), while she watches the biathlon. Bibi tries to seduce Bond in his hotel room, but Bond refuses her advances due to her young age.
At the biathlon, Bibi points out a friend of hers, Eric Kriegler (John Wyman), a competitor in the event. Bond bids Bibi farewell and leaves the event; as he skis away, he is attacked by a small group of thugs on winterized motorcycles. One of them is Kriegler himself, who tries to kill Bond with his sniper's rifle, another is Locque. Bond is able to escape his attackers, killing several of them in the process.
Bond meets Bibi later at the Olympic skating rink where Bibi is practicing. He asks her about Eric and finds out that he is an East German defector. After Bibi leaves, he is again attacked, this time by three hulking hockey players. Bond beats them all and returns to his car. There he finds that Ferrara has been killed. In Ferrara's dead hand is a White Dove pin.
Bond goes to the business section of Cortina the next day and spots Melina buying a crossbow. As he approaches her, they are both attacked by men on motorcycles. Bond kills both attackers and orders Melina to leave Cortina. He also tells her that her need for revenge may get her killed too. She agrees to return to her father's yacht and wait for word from Bond.
Bond travels to Greece to continue his investigation of Columbo. At a nightclub, he meets with Kristatos and asks how to meet Columbo, not knowing that Columbo's men are secretly recording their conversation. Columbo is at the same club and is sitting with a woman, Lisl von Schlaf (Cassandra Harris), a countess. She becomes openly insulted by one of Columbo's comments and proceeds to leave. Seeing an opportunity to learn more about Columbo, Bond approaches Lisl and offers to have Kristatos' valet, Apostis (Jack Klaff), drive her back to her hotel. After Apostis leaves, Bond and Lisl spend the night together. Lisl confesses that Columbo knows that Bond is a secret agent, and has asked her to learn more about him. Unbeknownst to either of them, Apostis is secretly listening in on their conversation.
In the morning, the two walk on the beach and are attacked by Locque and another White Dove member, Claus (Charles Dance). Locque kills Lisl by running her down in his dune buggy, and he and Claus capture Bond. Claus is suddenly shot by a harpoon and several men wearing the White Dove emblem appear out of the surf and capture Bond.
Bond is taken to Columbo himself on a yacht, who tries to convince the spy that Kristatos is actually the real villain and the one behind the search for the ATAC. As a means to prove it, he invites Bond to accompany his men to Albania, where Kristatos is using a shipping warehouse to process heroin. Bond reluctantly agrees, and they find Locque overseeing a shipment of raw opium smuggled in enormous rolls of newsprint. They also discover some old naval mines, implying that the sinking of the St. Georges was no accident. As his men provide cover, Locque wires explosives to one of the mines, taking the detonator with him to a nearby escape car. Locque detonates the explosives to cover his escape, but Columbo's raiding party are able to flee the warehouse before it explodes. Using an underground tunnel, Bond is able to get to the shipyard's entrance before Locque does. He opens fire on Locque's car, hitting the assassin in the shoulder and causing him to lose control of the vehicle, which careens off the road. As Locque's car precariously teeters on the precipice of a cliff, Bond shows him the dove pin he'd gotten from Ferrara, throws it to Locque; the tiny shift in weight causes the car to slide off the cliff. Bond gives the car a hard kick and it plummets, killing Locque.
Bond travels to the Havelock's yacht and finds Melina. Bond asks Melina if her father possibly left behind any information about his work for the British government. Melina shows Bond her father's journal and they discover that her father had been diving in an unusual underwater location.
The two go there in her father's mini-submarine and find the St. Georges. The enter the wreck and find the ATAC attached to an explosive charge which had failed to be activated. Bond disarms the bomb and takes the ATAC when the two are attacked by a diver in a JIM suit. Bond manages to escape the killer and attaches the ATAC bomb to the JIM suit, destroying it. Nearly out of breathable air, he and Melina return to the mini-sub but are again attacked by another mini-sub. They are able to escape this man as well.
They return to the surface to find that Kristatos, accompanied by Kriegler and Apostis, has seized the Havelock yacht and killed the crew. Kristatos takes the ATAC with the intention of selling it to the Soviet government; Kriegler is revealed to be his KGB contact. Using Melina and Bond as "bait" they tow them behind Kristatos' yacht hoping that sharks will eat them. Bond is able to snap the line binding them and they retreat to a SCUBA tank Melina left on the ocean floor. Kristatos, assuming Bond and Melina are both dead, leaves.
The two make it back to their yacht and hear her father's parrot reveal the destination of the ATAC, a location only called "St. Cyril's." Q informs Bond that there are over 300 locations with the same name in all of Greece, however, Bond knows that Columbo will know where Kristatos has retreated to.
The St. Cyril's that Columbo knows of is a monastery in the northern mountains of Greece (in reality, Meteora) and sits atop a series of sheer cliffs. It is only accessible from the ground by a cabled basket; Bond must scale the cliff to reach the hoist controlling the basket. As he climbs, he is found by Apostis, who tries to loosen the spikes and climbing rope Bond is using as a safety line. Bond is able to make it up the cliff far enough to throw a spike at Apostis and send him off the cliff. He makes it the basket house and lowers it for the rest of the crew to come up.
General Gogol is on his way to the monastery to collect the ATAC. Kristatos attempts to flee with the ATAC, with Columbo and Melina in hot pursuit. Kriegler attacks Bond, nearly overpowering him due to his size, before Bond tosses him out a window and over the cliff and races after Columbo and Melina. Kristatos and Columbo fight. Kristatos knocks Columbo out, only to be cornered by Melina, who seeks to kill him to avenge her parents' death. While Bond and Melina argue over whether to execute Kristatos or simply arrest him, Kristatos pulls a switchblade out of his jacket. Before Kristatos can attack Melina or Bond, Columbo regains consciousness and kills him with a throwing knife. Gogol arrives and genially asks for the ATAC; Bond suddenly throws it over the side of the mountain where it shatters hundreds of feet below. Gogol is visibly shocked at first but Bond replies "Detente, Comrade! You don't have it, I don't have it." Gogol suddenly smiles and leaves, obviously humored.
Melina and Bond share a romantic evening on board the Havelock yacht when a call arrives from MI6 on Bond's wristwatch. The British Prime Minister, Margaret Thatcher wishes to speak to Bond personally. Bond gives the watch to Melina's parrot and the PM is tricked into thinking she's still speaking to Bond, who has joined Melina for a nude moonlight swim.