Bad Boys Mike Lowrey (Will Smith) and Marcus Burnett (Martin Lawrence) learn that the beloved late Captain Conrad Howard (Joe Pantoliano) is being posthumously framed for working with cartels after a large sum of money has been sent to an account in his name. As they try to clear his name, Mike’s son Armando is almost killed in prison since he can identify the mastermind behind the operation. While transporting Armando, Mike and Marcus also get framed and forced to go on the run after their chopper is brought down.
The villain is James McGrath (Eric Dane), a former DEA agent who was taken hostage by cartels and later worked with them after being tortured into giving up his team. Howard gathered over a decade’s worth of evidence against McGrath, so he is trying to have Howard framed. Meanwhile, Howard’s daughter, U.S. Marshal Judy Howard, is out for revenge against Armando since he killed her father. Gangsters all over Miami also go after the Bad Boys since McGrath puts a bounty on their heads.
The three have no choice but to work with AMMO agents Kelly and Dorn to go through evidence so that Armando can identify McGrath. When Mike calls Captain Rita Secada to tell her what they found, McGrath’s goons go after Mike and Marcus’s family. While Marcus’s son-in-law Reggie successfully defends the family, Mike’s new wife Christine, plus Howard’s granddaughter Callie are abducted. Mike realizes that McGrath’s inside man is District Attorney Adam Lockwood, who is dating Rita and overheard whatever info Mike gave her. Kelly and Dorn help take Lockwood down before he can kill Rita, and they scan his voice to set up a meeting with McGrath.
The showdown takes place at an old gator theme park. While the heroes and villains engage in a shootout, Lockwood tries to escape, but Rita shoots his plane down and kicks him into a gator pit where a large albino alligator eats him. Armando protects Callie and gets her to safety. Mike and Marcus catch up to McGrath and Christine by the beach, where Mike manages to shoot McGrath to death. Judy arrives and prepares to kill Armando, but Callie stops her after telling her that he saved her life. Judy lets Armando go, and Mike helps him escape. With the evidence gathered, Howard’s name is cleared.