In Los Angeles, Franklin Hatchett (Chris Tucker) drives down the street singing along to the songs on the radio in his car. After a meeting with a friend, he heads to the car wash that he works at. Also at the car wash is local reporter James Russell (Charlie Sheen), who is doing a report on inner city crime. He notes Franklin's habits of conning and illegally buying and selling things, and unsuccessfully tries to interview him in order to get him to confess on camera. Angered at being blown off by him, Russell calls the police, who come arrest Hatchett. Hatchett is held in jail, and eventually loaded onto a prisoner transport bus along with several other criminals. Hatchett and another criminal, Raymond Villard (Gérard Ismaël), do not get along, but are handcuffed together. Meanwhile, Russell presents the video of the police arresting Hatchett to his boss, hoping it'll be big news, but his boss dislikes it and fires him after they argue. The bus is attacked on a bridge during the transport by a group of commandos, aided by one of the bus drivers, all of whom are there to spring Villard. They blow up the bus and shoot everyone inside, and recover Villard, and Hatchett goes with them, as he's cuffed to Villard. The corrupt bus driver, actually a criminal named Dubray (Frank Bruynbroek) greets Villard once on board their helicopter after the escape. He cuts the pair free of each other by breaking the handcuffs, and Hatchett hears them discussing a large amount of stolen diamonds hidden in the dashboard of car. The two prepare to kill him, waiting until they get over land to drop him, but he jumps out of the copter, and falls into the water below as they shoot at him. They fly away, but Hatchett surfaces, and gets onto land.
Hatchett enters a diner and orders food, but two cops come in and sit down, scaring him. He keeps calm until pictures of himself and Villard are shown on TV during a broadcast about the bus escape, in which Hatchett has been falsely linked to Villard and the cop killings he and his men committed. The cops quickly connect him to the pictures on TV. He gets up and dives behind the bar just as they pull out their guns, and they open fire. He manages to get outside, and they chase him, but he loses them amid the traffic. Seeing Russell's face on an advertisement on the back of a bus, Hatchett resolves to contact him. The two meet at a dock, and after an initially hostile confrontation, Russell convinces Hatchett to stay with him, saying he'll prove his innocence of the murders. The two then go to his home, and Russell calls his boss and tells him that he has Hatchett, and his boss gives him his job back so that he can publish the story in time for Sweeps week. After Hatchett cleans himself up, the two attend Russell's wedding rehearsal dinner, where he meets Russell's fiancee Grace Cipriano (Heather Locklear), and her parents, Guy (Paul Sorvino) and Connie (Veronica Cartwright). Hatchett pretends to be the son of famous singer Vic Damone, and endears himself to Guy. Meanwhile, two police officers, Bobby Pickett (Paul Gleason) and Detective Williams (Daniel Roebuck), interrogate Hatchett's girlfriend Paula (Elise Neal), and wiretap her phone.
Hatchett calls Paula during the rehearsal, who is furious, and he says he'll come see her. He quickly learns this is out of the question when he tries to leave, as he sees police cars driving around searching for him. He convinces Russell to help him, and the two set out to look for proof of Franklin's innocence. They head to Paula's home, where Hatchett consoles her and convinces her that he's not involved in the killings reported on the news. He and Russell are forced to flee when Pickett and Williams show up after hearing Hatchett and Paula's phone conversation, and the cops chase Hatchett and Russell across several rooftops, though the pair manages to escape. The two then head to a European nightclub which Russell claims he can get them into, since Hatchett believes the culprits behind the murders are there. They're denied access, but Hatchett calls the club and claims there's a bomb inside, causing a large panic, and all the patrons flee the club. Villard and Dubray drive out from around the alley next to the club, and open fire on the pair. They flee down the street, avoiding gunfire, as the two criminals keep up in their car, and they hide in a small shop. The criminals enter the shop, and one of them violently guns down the shopkeeper, who was woken up by the commotion. When they don't find Hatchett and Russell, they leave. The two then visit Hatchett's childhood friend Aaron (Michael Wright), who is a local arms dealer. He gives the two several guns to carry with them, promising to help them if they get into trouble.
The next morning, the two visit the Cipriano home, where Russell smooths things over with Grace, who saw his picture on TV as a suspect, along with Hatchett, both now wanted for murder since the police know Russell is aiding Hatchett. Hatchett eats breakfast with Guy, and Guy shows him the expensive watches he's buying for Russell and Grace as wedding presents. Hatchett convinces him to buy the couple a car as a wedding gift, and the two go to an auto expo where Hatchett plans to search for the cache of diamonds he heard Villard and Dubray discussing earlier. Guy and Franklin get into a bidding war with Villard, Dubray, and the other Europeans over a car, and Franklin calls the police, telling them that the Europeans are at the expo. Russell arrives and finds him, and the two begin to argue about Hatchett's actions, which results in a fist fight. Hatchett beats Russell, and goes into the garage where the cars are stored. He finds the diamonds inside one of the car dashboards, but Dubray finds him, and the two engage in a lengthy car chase which ends when Dubray is caught in a large pileup of civilian cars on a street. Back at the expo, Villard finds Russell and kidnaps him.
Franklin meets Paula at a restaurant, and he shows her the diamonds. He explains what happened and the two try to decide what to do. He then receives a call from Villard on Russell's phone, who tells him that they have Russell and that they'll kill him if the diamonds aren't returned. Franklin agrees to meet them at the Los Angeles Memorial Coliseum. He also calls the police, a local mob boss whom he owes money to, and French mercenaries, and they all agree to meet him at the coliseum as well. Once there, Franklin finds officers Pickett and Williams, but Pickett shoots Williams, revealing himself as a dirty cop employed by Villard. Franklin knocks him out and escapes, but the other parties arrive, and a massive shootout ensues. During the chaos, Russell frees himself, planting several grenades under Villard's helicopter, and he and Franklin meet up. The police detectives and the crew of mobsters are all wiped out, but Aaron shows up with some of his men, and they even the odds, using RPGs against Villard's men, and Dubray is also killed. Franklin and Russell are then cornered by the rest of Villard's men, but Franklin throws the diamonds into the air and they scatter all around, causing the me to drop their weapons and try to grab them. The police arrive, and Villard tries to escape in his helicopter, but the grenades detonate, and he's killed in the explosion.
In the end, Franklin and Russell are cleared of all charges, and Russell marries Grace, with Franklin as his best man, and Franklin gives Russell the ring, with a diamond on it, and Russell realizes that Franklin said an unknown number of the diamonds.