In Marseille, an undercover detective is following Alain Charnier (Fernando Rey), a wealthy French criminal who runs the largest heroin-smuggling syndicate in the world. The policeman is assassinated by Charnier's hitman, Pierre Nicoli (Marcel Bozzuffi). Charnier plans to smuggle $32 million worth of heroin into the United States by hiding it in the car of his unsuspecting friend, French television personality Henri Devereaux (Fr d ric de Pasquale).
In New York City, detectives Jimmy "Popeye" Doyle (Gene Hackman) and Buddy "Cloudy" Russo (Roy Scheider) are conducting an undercover stakeout in Bedford-Stuyvesant, Brooklyn. After seeing a drug transaction take place in a bar, Cloudy goes in to make an arrest, but the suspect makes a break for it, cutting Cloudy on the arm with a knife. After catching up with their suspect and severely beating him, the detectives interrogate the man, who reveals his drug connection.
Later, Popeye and Cloudy go out for drinks at the Copacabana, where Popeye notices Salvatore "Sal" Boca (Tony Lo Bianco) and his young wife Angie (Arlene Farber) entertaining mob members involved in narcotics. They decide to tail the couple, and soon learn that the Bocas, who run a modest newsstand luncheonette, have criminal records: Sal for armed robbery and murder, and Angie for shoplifting. The detectives suspect that the Bocas, who frequent several nightclubs and drive expensive cars, are involved in some kind of criminal operation. They soon establish a link between the Bocas and lawyer Joel Weinstock (Harold Gary), who is part of the narcotics underworld.
Soon after, Popeye learns from an informant that a major shipment of heroin will arrive in the New York area. The detectives convince their supervisor, Walt Simonson (Eddie Egan), to wiretap the Bocas' phones, and they use several ruses to obtain additional information. Popeye and Cloudy are joined in the investigation by a federal agent named Mulderig (Bill Hickman). Popeye and Mulderig dislike each other based on having worked together in the past, with Mulderig holding Popeye responsible for the death of a policeman.
After Devereaux's Lincoln Continental Mark III arrives in New York City, Weinstock's chemist (Pat McDermott) tests a sample of the heroin and declares it the purest he has ever seen, establishing that the shipment could make as much as $32 million on a half-million dollar investment. Boca is impatient to make the purchase reflecting Charnier's desire to return to France as soon as possible while Weinstock, with more experience in smuggling, urges patience, knowing Boca's phone is tapped and that they are being investigated.
Charnier soon realizes he has been observed since his arrival in New York. He "makes" Popeye and escapes, waving tauntingly on the departing subway shuttle from Grand Central Terminal. To avoid being tailed, he has Sal Boca instead meet him in Washington D.C., where Boca asks for a delay to avoid the police. Charnier, however, wants to conclude the deal quickly so he can return to France. On the flight back to New York, Nicoli offers to kill Popeye, but Charnier objects, knowing that Popeye would be replaced by another policeman. Nicoli insists, however, saying they will be back in France before a replacement is assigned.
Soon after, Nicoli attempts to shoot Popeye from the roof of Doyle's apartment complex but misses. Popeye chases after the fleeing sniper, who boards an elevated train at the Bay 50th Street Station in Gravesend. Doyle commandeers a car and gives chase along Stillwell Avenue. Realizing he is pursued, Nicoli works his way forward through the carriages, kills a policeman who tries to intervene and then hijacks the motorman at gunpoint forcing him to drive straight through the next station, also killing the train conductor who gets too close. The motorman passes out and they are just about to slam into another, stationary, train, when an emergency trackside brake engages violently hurling the assassin against a glass window. Popeye arrives limping, having wrecked the commandeered car, and sees the killer descending from the platform. When he sees Doyle, he turns to run but is shot dead by Doyle with a single shot.
After a lengthy stakeout, Popeye impounds Devereaux's Lincoln. In a police garage, he and his team take it apart piece by piece, searching for the drugs, but seemingly come up empty-handed. Then Cloudy notes that the vehicle's shipping weight is 120 pounds over its listed manufacturer's weight; they realize the contraband must still be in the car. This time they remove the rocker panels and discover the obloid packages (some light blue and some light green) of heroin concealed therein. The police then restore the car to its original condition and return it to Devereaux, who delivers the Lincoln to Charnier.
Charnier drives to an old factory on Wards Island to meet Weinstock, and about a dozen others, and deliver the drugs. After Charnier has the rocker panels removed, Weinstock's chemist tests one of the bags and confirms its quality. Charnier removes the bags of drugs, and hides the money; concealing it beneath the rocker panels of another car that was purchased at an auction of junk cars, which he will then take back to France. With their transaction complete, Charnier and Sal drive off in the Lincoln, but almost immediately hit a roadblock with a large contingent of police led by Popeye Doyle, who playfully waves to Charnier. The police chase the Lincoln back to the factory, where Sal is killed with two shotgun blasts during a shootout with the police and most of the other criminals surrender.
Charnier, however, escapes into the old warehouse and Popeye follows after him, with Cloudy joining in the hunt. When Popeye sees a shadowy figure in the distance, he empties his revolver a split-second after shouting a warning. The man whom Popeye kills, however, is not Charnier but Mulderig. Undaunted, Popeye tells Cloudy that he will get Charnier. After reloading his gun, Popeye runs into another room, and a few seconds later, a single gunshot is heard.
Output: Who does Nicoli kill aboard the train?