John “JJ” Shaft Jr. (Jessie Usher) is an FBI agent and a cybersecurity expert with a degree from MIT. After his best friend dies under suspicious circumstances, he turns to his estranged father—the legendary John Shaft II (Samuel L. Jackson) — to uncover the truth. Father and son must navigate the Harlem underworld to solve the crime. Along the way they team up with the first generation and JJ’s grandfather, John Shaft (Richard Roundtree).
Famed private investigator John Shaft must abandon his infant son JJ and girlfriend Maya after drug lord Pierro “Gordito” Carrera makes an attempt on their lives. JJ grows up without a father but with best friends Sasha and Karim. As an adult, he is an MIT graduate working as a cybersecurity expert for the FBI. When Karim is found dead from an apparent drug overdose, JJ tracks down his father to solve Karim’s possible murder.
The father-and-son duo learn of a drug operation involving Gordito and Karim’s former marine buddies. They killed him when he was threatening to blow the whistle on their scheme. The villains kidnap Sasha, so Shaft and JJ must team up with John Shaft I to stop them. They infiltrate Gordito’s building, save Sasha, and shoot Gordito out a window.
JJ is promoted at the FBI but decides to leave to work full time with his dad and granddad.
Harlem, 1989 – John Shaft (Samuel L. Jackson) is arguing with his girlfriend Maya Babanikos (Regina Hall) in the streets, just before they are approached by some armed criminals. Shaft spots them and protects Maya as the thugs open fire on their car. He exits the car and shoots the thugs dead, before finding that one of them is carrying drugs pushed by the ruthless drug lord Pierro “Gordito” Carrera (Isaach De Bankole). Shaft goes back to Maya, and it is revealed that their baby son, John Jr (or JJ), was sitting in the backseat, but thankfully unharmed. The two agree that the life Shaft lives is too dangerous for them as a family, and they must part ways.
Over the next 25 years, Shaft remains invisible from JJ’s life, but still tries to acknowledge him by sending him gifts (like a Super Bowl ring and a box of condoms). JJ (now played by Jessie T. Usher) has gotten by with his friends Sasha Arias (Alexandra Shipp) and Karim Hassan (Avan Jogia). He graduates from MIT and becomes a cybersecurity expert for the FBI. Special Agent Vietti (Titus Welliver) briefs the others on the need for extra surveillance on the Rashad Azzam Mosque and its Imam Farik Bahar (Amato D’Apolito) since he is deemed suspicious due to frequent trips to Afghanistan, but they want to keep it from appearing as an Islamophobic investigation. JJ wants in on the case, but Vietti refuses to put him on since he is unqualified.
JJ meets with Sasha and Karim in a bar. Karim, now a former marine and recovering addict, tells them about a program called Brothers Watching Brothers that is dedicated to helping vets who have struggled with addiction. Karim then abruptly leaves, and JJ goes after him to make sure he is okay. He assures JJ that he is fine, and he thanks him for always supporting him. In the morning, Maya calls JJ and tells him that Karim has been found dead.
Karim’s funeral is held, with his friends, family, and fellow marines mourning him. JJ looks into the crime scene report on Karim’s death, which states that he was found dead from an apparent overdose outside the building of a known drug dealer named Manny Orozco (Ian Casselberry). He goes around the area and learns from a neighborhood kid of Manny’s location. JJ approaches them but is knocked out by one of Manny’s goons after asking about Karim. He wakes up in the hospital and is tended by Sasha, who is a nurse. He tells her that Manny is never going to talk to him or a cop about Karim, so he has to find the one guy who will make him talk.
JJ goes to his father’s office and meets him for the first time. Although their encounter is tense, JJ admits that he needs his father’s help in solving the case. Shaft sees that JJ has been hit, and JJ says it was one of Manny’s goons. Shaft takes JJ back to the building where he takes down Manny’s goons and shoots them in the legs before finding Manny, who already knows Shaft. After learning that he assaulted Shaft’s son, Manny runs into the streets, but Shaft causes a truck to stop and make Manny run into it. Shaft breaks Manny’s hand as he gets him to give up info on Karim, and he mentions the Brothers Watching Brothers team.
On the way to the rehab center where BWB is located, Shaft and JJ clash over the fact that Shaft is so abrasive and violent while JJ is more soft and timid by comparison. They arrive and meet Karim’s friends Major Gary Cutworth, or “Cutty” (Matt Lauria), Sgt. Keith Williams (Robbie Jones), and Staff Sgt. Eddie Dominguez (Aaron Dominguez). They mention that Karim became more religious after he started attending the Rashad Mosque, which is where he met his girlfriend Anam (Almeera Jiwa). Dominguez appears uncomfortable with mentioning Karim, so the two leave, but Shaft seems suspicious.
Shaft later takes JJ to a nightclub to loosen up. He introduces his son to two party girls Baby (Chivonne Michelle) and Sugar (Tashiana Washington), and he soon gets drunk. Shaft goes to talk to his informant buddy Freddy P (Method Man), but they soon watch JJ getting into a fight with another guy. The very inebriated JJ manages to win the fight due to knowing capoeira, making him look cool in front of everyone…until he completely ruins the moment by barfing on both Baby and Sugar. Shaft brings him home and brings him to bed.
In the morning, Shaft and a hungover JJ meet with Sasha to enter the Mosque to talk to Anam. They are confronted by Farik, who is Anam’s father. After he sees that JJ is FBI, he orders the three of them out of there. Later, JJ investigates the Mosque’s funds and sees that half a million dollars was made into an account from a recently opened supermarket. JJ tries to bring this info to Vietti, but he puts JJ on administrative leave for meddling in the investigation.
Shaft and JJ go to the market and meet with the manager, Bennie (Luna Lauren Velez). She knocks JJ in the face before Shaft takes his gun out to get info out of Bennie. She tells them that she is just supporting the Mosque. However, after reviewing some surveillance photos, Shaft recognizes Bennie in pictures with Gordito, leading him and JJ to suspect that the supermarket is a front for Gordito’s drug operation, along with possible terrorist connections with Farik’s Afghanistan trips. JJ also reveals that he planted a micro camera in Bennie’s desk to keep an eye on her.
Later that night, Shaft goes to a restaurant where Maya is on a date with a dorky man named Ron (Leland L. Jones). She becomes flustered at his presence and thinks he is trying to crash the place to get her back. Sure enough, he is sitting at their table talking to Ron. Moments later, Shaft spots gunmen entering, and they begin to open fire on the place. Shaft protects Maya before shooting at the goons and killing them. At the same time, JJ is out to dinner with Sasha, and they are also targeted by gunmen. Sasha watches as JJ gets her gun and fires at the bad guys, killing them all. Shaft makes Ron give him his car keys as they go with Maya to the restaurant where JJ and Sasha are, and Maya is furious to learn that Shaft has been seeing JJ behind her back. JJ pulls a phone off a dead goon and calls the employer’s number. With his camera, he sees that it was Bennie who ordered the hit on the Shafts.
The FBI make a raid on the Mosque and arrest Farik, which draws criticism that the FBI launched an Islamophobic attack. Vietti fires JJ after the mess that transpires. He then goes to overhear Shaft talking to Freddy, who gives him information on Dominguez being involved in the operation, but JJ walks in when it sounds like them talking about JJ as a nuisance that he can ditch after the case is done. He angrily walks away from his father. This prompts Shaft to rethink his actions, so he goes to apologize to Maya for his absence and behavior, but he ruins it by asking for sex.
JJ and Sasha head over to the BWB center to investigate Dominguez, who is revealed to be Bennie’s cousin. JJ enters and sees Cutty, Dominguez, and Williams meeting, and he records it on his phone. Cutty is heard talking about being involved with Gordito, and that Karim attempting to be a whistleblower is what got him killed. Cutty sees that Dominguez is having second thoughts, so he kills him for getting soft. JJ makes noise and is spotted. He and Sasha are caught outside, and Cutty and Williams take her hostage. Shaft later arrives at the crime scene where he and JJ confront one another. Shaft tells him that he never wanted to abandon him, but Gordito’s attempt on their lives made it hard for him to keep their family together, and that’s why his vendetta against Gordito is so personal.
Shaft and JJ visit the home of the only other person who can help them…John Shaft, Sr (Richard Roundtree). He is stunned to meet JJ for the first time, as is JJ. Shaft Sr supplies his son and grandson with guns to go after Gordito and Cutty, but he insists on joining in on the action.
The three Shafts arrive at Gordito’s building where he is meeting with Cutty and Williams over a new shipment of heroin. JJ attempts to hack the cameras to avoid detection, but the lack of wi-fi leads to a glitch. Thinking quickly, the three get out of the elevator after they are spotted by Gordito’s men, and they break in through the window to begin fighting the villains. Gordito’s henchmen are killed, as is Williams, before JJ fights Cutty. Before Cutty can shoot JJ, he stabs Cutty in the leg with glass before shooting him dead. Gordito then has the men and Sasha at gunpoint, where he tells Shaft that JJ was always his target in an attempt to spite Shaft for meddling in his operation. Shaft jumps to take the shot meant for JJ, and Shaft Sr throws a knife at Gordito. The drug lord is then shot by Shaft multiple times before being blasted out a window to his demise. Shaft then loses consciousness from blood loss.
Shaft wakes up in the hospital with JJ, Shaft Sr, and Maya there by his side. Maya is more forgiving of Shaft due to his protection of JJ. JJ then goes to finally kiss Sasha, making his dad and granddad proud.
JJ returns to the FBI with a standing ovation for his work. Vietti is ready to welcome him back and promote him, but JJ tells him he is not returning and is instead going to work full time with his father and grandfather. He joins them as they walk off into the streets in style.