The film opens with a grand view of Los Angeles, with a news broadcast in the background detailing an increase in crime in the city. The overview of the city goes until the end of the opening credits where we zoom in on the new house of Paul Kersey (Charles Bronson) where the maid, Rosario (Silvana Gallardo), is preparing dinner. He seems to have picked up the pieces of his life to move on, as his girlfriend is KABC news/radio reporter Geri Nichols (Jill Ireland) and they both go and pick up Carol from the hospital and spend the day with her. Paul talks to the doctor, who says that despite her traumatic catatonia, she has begun to speak again. Her husband, Jack Toby, though not seen or mentioned, presumably divorced Carol. Paul, Geri, and Carol spend the rest of the afternoon at a carnival, where Paul offers to buy ice cream while the girls look around. While waiting in line for some ice cream, he gets mugged and his dollar bill is stolen by five gang members. At first Paul does not mind but realizes they also took his wallet. Paul manages to catch up with one of them (Jiver), but Jiver exclaims that he was not the one who took the wallet.
Geri heads to do an interview with the senator while Carol and Paul go on a boat ride. The same five muggers who stole Kersey's wallet arrive at his house determined to kill him. The thugs break in, tightly bind, and gag, and then gang rape Rosario. Paul arrives home with Carol, only to get beaten unconscious when he walks in the door. Rosario tries to call the police, but the thugs hear the sound and quickly kill Rosario by bashing her head in. They then take Carol to their hideout, where one of the muggers rapes her. After the attack, she runs away from the thugs and jumps from a window, becoming impaled on the railings below.
Geri arrives to the house as Paul regains consciousness and the police arrive. Lt. Mankewicz (Ben Frank) is one of the first on the scene, asking Paul about the identification of the muggers because the description was "a little vague". A short time later, Paul learns about the death of his daughter and is sent to the station to ID her. Later, Mankewicz asks Paul to view some photos at the station to rejog his memory since Paul is the only witness. Paul declines by saying: "it won't do any good."
The next scene is at a funeral where Paul and Geri both attend. That night, Paul pulls out a .32 caliber semi-automatic handgun he kept hidden in his closet, changes clothing, and rents a low-rent apartment in the inner city as his forward base of operations. After wondering around most of the night through the rough part of downtown L.A. Paul returns to his own house. Geri arrives the next morning and lets herself in, where she nearly discovers Paul's gun laying on a dresser. Paul quickly gets up and hides it. After Geri leaves, he calls a locksmith to have the locks on his house changed.
The next night, Paul spots one of the muggers, Stomper, and follows him into an abandoned hotel building as a drug deal is about to be made between his partner and two buyers. Kersey tries to be quiet as he can, but the others notice his presence when he knocks over a can. Kersey kills Stomper's partner, then orders the other two out of the room where he kills Stomper.
The following evening, as he is patrolling the streets, Paul hears a scream coming from an underground parking garage where a man and a woman are being assaulted by four muggers. One of the muggers is Jiver, whom Kersey chased down the alley the day of his daughter's death. Paul opens fire on the muggers, killing two of them. Jiver is wounded, but he and the fourth mugger manage to get away. Taking a .45 caliber pistol off one of the dead muggers, Paul follows the trail of blood, and manages to wound and kill Jiver at a warehouse across the street. Paul flees before the police arrive.
The L.A. police quickly hear about the murders, as does the NY Police Department. Detective Frank Ochoa (Vincent Gardenia) is called by the LAPD to help. The Police Commissioner (Anthony Francoisa) thinks the vigilante killings may be done by Kersey again. Fearing that Kersey, when caught, will reveal that they let him go instead of prosecuting him, the NYPD sends Inspector Frank Ochoa to make sure that does not happen. Ochoa meets with Lt. Mankewicz, who suspects that Frank is hiding something.
That night, Ochoa breaks into Geri's apartment where he meets Geri and tells her about Paul's past and recent vigilante spree. But when Geri confronts Paul, he quickly denies it, ascribing the tale to Ochoa's imagination. Paul drives Geri to work the next morning, where Ochoa is waiting. In order to keep tabs on Paul, Ochoa calls Mankiewicz and asks him to park his car near Paul's apartment (but he doesn't tell Mankiewicz about following Kersey himself).
Another night later, Ochoa follows an unknowing Kersey from his house to his low-rent apartment and from there to a local square where Kersey spots the three remaining gang members who attacked him: Cutter (Laurence Fishburne), Punkcut (E. Lamont Johnson), and Nirvana (Thomas F. Duffy). Kersey follows the trio on a bus to an abandoned park, where a major drug deal goes down. Ochoa follows Kersey and sees him from a distance hiding in a bush, but decides to help Paul after detecting a spotlight heading in his direction. Ochoa warns Paul with a shot by shooting a gang member who tries to shoot Paul. Paul runs behind a tree as the gang members grab their guns and fire back. Ochoa gets shot by a hail of gunfire, but Paul manages to kill Cutter (who vainly tries to shield his head with a boom box) with a bullet through the face. Punkcut is also wounded by a gunshot to the chest, as is another gang member. Paul also shoots and kills the getaway driver and seller of the firearms, who plummets off a cliff to a fiery doom below. The final mugger, Nirvana, gets away. Paul goes over to Ochoa and asks him why he saved his life. Ochoa responds he had to side with Paul against the criminals, and tells Paul to kill Nirvana for him. Ochoa dies as the police arrive, and Paul escapes into the night. The police get the name of Ochoa's killer from a badly injured Punkcut by inflicting pain, who succumbs to his injuries and dies.
A few days later, Nirvana (who's real name is revealed to be Charles Wilson) is found by the police hiding out in an apartment. Paul, monitoring the police radio frequency from an acquired radio scanner, tries to get to Nirvana to kill him before the police do. But in the apartment building hallway, Paul narrowly misses his opportunity for a kill when he gets slashed on the arm by Nirvana during a chase. Nirvana runs outside when he sees the police approaching and gets tasered, but with no effect due to an influence of PCP. He is finally arrested after stabbing several officers.
Tried and found criminally insane, Charles 'Nirvana' Wilson is sent to McLarren State Hospital. Paul comes along with Geri to the hospital where she is interviewing Charles Wilson's doctor. The visit allows Paul to secretly steal a facility ID card and a white doctor's lab coat. Despite his plans for revenge to kill the last surviving thug who assaulted him, Paul has lunch with Geri the next day and proposes to her. Geri accepts.
The night they plan to go to Mexico for their wedding, Paul uses his altered doctor ID and stolen lab coat to gain access to the hospital and confronts Wilson in the hospital meeting room. They have a violent fight and Kersey is stabbed repeatedly by Wilson with a scalpel. But when Wilson slams Kersey up against an electrical device, Kersey ducks the oncoming punch. Wilson's hand smashes through the machine and Kersey turns the power up, electrocuting Wilson. Donald Kay (Charles Cyphers), the head orderly on duty, witnesses Wilson's death, but sympathizes with Kersey and gives him three minutes to escape from the hospital before sounding the alarm.
Geri goes to his apartment later that night and finds the scanned copy of the stolen ID. She realizes that Paul is actually the vigilante after she hears a report of Wilson's death on the radio. She puts the paper and the engagement ring on the table and drives off. Paul arrives home minutes later to an empty apartment.
Five months later, Paul is at his office speaking to his clients about a party in celebration of a new architectural design. His boss Elliott Cass (Michael Prince) invites him to a party that very evening, and when Paul is asked if he's free, he answers: "What else would I be doing?" The movie ends with gunshots heard on L.A.'s skid row, implying that Paul will continue his vigilante spree undisturbed.