Shot with a cellphone camera, the film opens with a gang initiation, where a boy living on a council estate in South London is made to take drugs and hold a pistol. He is later shown joyriding with two others on a motorbike, harassing and shooting dead a mother walking her child, and then fleeing only to be killed by an oncoming lorry.
The eponymous Harry Brown (Michael Caine), an elderly former Royal Marine and Northern Ireland veteran, tries his best to be indifferent about his violent neighbourhood. He lives in a small flat at Heygate Estate in Walworth, London. He often pays visits to his hospitalized and comatose wife, but avoids cutting through a noisy public underpass under a local motorway, which is a gathering spot at all hours for a local street gang. Otherwise, he spends his days drinking and playing chess with his best friend, Leonard Attwell (David Bradley), at a pub run by Sid (Liam Cunningham), a shady Irishman who takes kickbacks from a pair of black marketeers, Kenny (Joseph Gilgun) and Stretch (Sean Harris).
Harry is awakened in the middle of the night by a phone call where he is informed that his wife is dying, but in order to reach the hospital before she passes away he must go through the underpass, but he is too scared to do so and arrives too late. After the funeral, Leonard confides that he is being bullied by some youths and shows him an old bayonet he now carries to defend himself, citing that the police would not heed his complaints. Leonard later wakes in his flat to find someone had pushed burning dog faeces through his mail slot. He goes on his balcony and curses loudly.
The next day, Harry is visited by detectives Alice Frampton (Emily Mortimer) and Terry Hicock (Charlie Creed-Miles), who tell him that Leonard had been murdered. Members of a local gang, including the gang's leader Noel Winters (Ben Drew), are arrested, but they refuse to answer questions about the murder and are all released due to lack of evidence. Noel is very abusive to the cops and refers to his jailed father as the local kingpin. Harry gets drunk after Leonard's funeral, and while walking home along a cannal street, one of Noel's gang attempt to rob him with a knife; Harry's military training suddenly reasserts itself and he turns the knife on his drugged-up attacker, killing him.
Detective Frampton visits Harry again the following morning and informs him that because Leonard was killed with his own bayonet, the crime will probably be reduced to manslaughter on the basis of self-defense.
Harry decides to take matters into his own hands by becoming a vigilante. The following night, he follows Kenny from Sid's pub to a squalid house and manages to talk himself into a pistol deal. Inside, the drugged-up dealers are growing copious amounts of cannabis and making pornography, and have one of the girls abused in these videos on their sofa, suffering from a drug overdose. Harry asks Stretch to call an ambulance for her, but he threatens him instead, forcing Harry to ambush the pair and kills them both. He then steals several handguns, burns down the den, and drives the girl to a hospital in the drug dealers' vehicle. He notices that the bag that he had picked up at the den contains enormous amount of money, which he takes with him, after leaving a wad of notes for the girl, who is still unconscious. He later deposits this money in a church.
Over the next few days, Harry continues to survey the gang and underpass from Len's old apartment. He follows a a major drug-trafficker to capture the man's nephew, newest gang member Marky (Jack O'Connell). Harry kills the man, then captures and tortures the young man into revealing some cellphone camera footage of Leonard's murder, proving the gang's involvement. Harry uses Marky to bait Noel and another gang member into a gunfight at the underpass, which ends with Noel escaping, but Marky and the other gang member are killed. Harry gives chase, but collapses after having an emphysema attack, leaving him to be taken to hospital.
Certain that the recent violence is related to a gang war, Police Superintendent Childs (Iain Glen) orders a major arrest operation, unconvinced that Harry is the vigilante as Frampton has suspected. Childs tells Frampton she will be re-assigned to an Identity Theft Unit. The late-night raids on the neighbourhood result in a massive riot. Harry awakens and leaves the hospital, and Frampton convinces Hicock to help her stop him, but the two end up badly injured in a car crash in the riots. Harry rescues them and takes them to Sid's pub, where Frampton confronts Harry and tells him that Sid is actually Noel's uncle. Harry finds Sid and Noel in the pub basement and shows Sid the cellphone video. Sid appears to be apologetic but as Harry drops his guard with an emphysema attack Sid takes his gun and delivers a vicious blow.
Frampton is in the midst of calling for backup when Sid and Noel come upstairs. Noel kicks and pounds the already injured Detective Inspector. Harry is thrown on the floor semi-conscious. Sid decides they will kill the three and dump them outside as riot victims. Sid suffocates Hicock to death while Noel begins strangling Frampton. Harry then manages to draw a hidden revolver and kills Noel and Sid in return shoots Harry. Harry asks to be taken out of his misery but before Sid can finally execute him, Frampton's police backup arrives and he is gunned down by a police marksman.
At a news conference held after the riot, Childs states that Frampton and the late Hicock will be rewarded for their work, but denies the rumours of vigilante involvement in the entire case.
The final scene is of a seemingly recovered Harry walking toward the underpass, which is now quiet and safe and the gang nowhere in sight. The VoiceOver of Childs states the impressive decrease in crime due to police efforts in the estate.