Frank Vega (Danny Trejo) is a decorated Vietnam War veteran who had led a difficult life. His old girlfriend married someone else and had two kids while he was fighting for his country, he is unable to get a job anywhere, and ended up making a living selling hot dogs for most of his life until a hot dog van took away his customers. Frank spent much of the rest of his life as a drifter, until one day, he becomes famous on the internet when he beats up two abusive skinheads on a bus, is given the nickname "Bad Ass," and is celebrated by everybody around him; people make T-shirts and graffiti with his face on it, police give him ride-alongs and he ends up on talk shows.
Three months later, Frank's mother, Juanita (Tonita Castro) passes away, leaving him her house and dog. Frank's best friend, Klondike Washington (Harrison Page), moves in with Frank and entrusts him with a USB flash drive for his late mother's safe deposit box. Klondike goes out one night for cigarettes and is murdered in a dark alley by two thugs, leaving Frank heartbroken. Frank meets a boy named Martin (John Duffy), who lives next door to Frank with his mother, Amber Lamps (Joyful Drake), and abusive father, Martin Sr. (Chris Spencer). Officer Malark (Patrick Fabian) assures Frank that the police department are working on finding the men who killed Klondike, but after watching the news and learning that the police solved a different murder in a faster time span, Frank realizes that the police are doing little to nothing about Klondike's murder.
Frank decides to solve the mystery himself, and investigates the alley where Klondike was shot. He finds a spent bullet casing and a pendant with a woman's picture in it. Frank takes them both to a pawn shop where the shopkeeper (Duane Whitaker) tells him it belongs to a man named Terence (Erik Betts), whose wife's picture is in the pendant. After returning the pendant to Terence's wife, he asks where Terence is, and she tells him that he is playing basketball with some friends. After Frank beats up some of Terence's friends, they tell him that a man named Renaldo might know where Terence is. Frank goes to Renaldo's apartment and meets his roommate, who tells Frank that Renaldo is at a bar across town. After beating up some of the bar patrons who try to throw him out, Frank finds Renaldo and extracts the information that Terence is hanging out with his girlfriend. Frank finds her working at a massage parlor but she is uncooperative, so he follows her after her shift. After breaking into her house, he finds Terence and tortures him for information about his boss (who ordered Klondike's murder) by sticking Terence's hand in the kitchen's garbage disposal. Terence reveals that Klondike was killed by a drug lord named Panther (Charles S. Dutton) for the flash drive he had been given earlier, which contains details of a secret project to dig oil wells in the neighborhood on behalf of Mayor Williams (Ron Perlman).
Before confronting Panther, Frank saves Amber and Martin from their abusive husband/father and ends up becoming their neighborhood friend. Amber invites Frank over for a home-cooked meal, and Frank gets all dressed up for it. At dinner, Frank asks Amber if he can have a matchbook of hers as a memento, and she gives it to him. They are about to kiss when Martin, Jr. walks in on them, so they do not. Frank insists that Amber and Martin stay at his place until he can repair her front door.
The next day, Frank gives the flash drive to Officer Malark and tracks down Panther at his hideout. But he is knocked unconscious, captured, and then tortured for information about the location of the flash drive by being hooked up to an electrocution device. He is shocked multiple times, like he was in Vietnam, but Frank still refuses to surrender the flash drive. Panther takes Frank's wallet, learns Frank's address and believes Frank is hiding not only the flash drive but a loved one there as well, due to Frank's insistence that there is nothing to find. Panther leaves his men to continue torturing Frank, but Frank breaks free from his restraints and throws a lit matchbook (the one he got from Amber) at some oil drums stored in the room, setting the building on fire and causing explosions. Panther escapes but Frank gives chase. They both steal buses and duel, damaging many other vehicles during their chase, and ultimately demolish both buses. While chasing Panther again on foot, Frank comes across the two skinheads he beat up on the bus earlier. The skinheads try to undo their previous humiliation at Frank's hands by using their cell phone to record themselves beating up Frank, but Frank overpowers them again and resumes his chase. Panther arrives at Frank's house, finds Amber, and threatens to kill her for the flash drive, but Frank arrives in time to intervene. Their fight spills out into the front yard, and just as Panther is about to go after Frank again, Amber jumps on his back and slows him down enough for Frank to get up and beat Panther senseless.
Panther is arrested, as is Mayor Williams when his connection to Panther's scandal is revealed on the news. Frank, Amber and Martin all live happily ever after.
Who does Panther find at Frank's house?
Amber