Marty Faranan is a struggling writer who dreams of finishing his screenplay, Seven Psychopaths. Marty's best friend, Billy Bickle, is an unemployed actor who makes a living by kidnapping dogs and collecting the owners' cash rewards for their safe return. His partner-in-crime is Hans Kieslowski, a religious man with a cancer-stricken wife, Myra. Billy helps Marty with Seven Psychopaths, suggesting he use the "Jack of Diamonds" killer, perpetrator of a recent double murder, as one of the seven "psychopaths" in his script. Marty writes a story for another psychopath, the "Quaker", who stalks his daughter's killer for decades, driving the killer to suicide and ultimately cutting his own throat to follow him to hell.
Billy and Hans steal a Shih Tzu, Bonny, unaware that it is the beloved pet of Charlie Costello, an unpredictable and violent gangster. Billy places an advertisement in the newspaper inviting "psychopaths" to call and share their "crazy or quirky" stories for him and Marty to use in their script. Charlie's thugs, led by Paulo, discover Hans's connection to the kidnapping. At a warehouse, they threaten to kill Marty and Hans unless they reveal Bonny's location, but the Jack of Diamonds killer arrives and shoots the thugs. Marty and Billy meet Zachariah Rigby, who saw the advertisement and shares his story. Charlie traces Myra to the cancer ward, killing her when she refuses to tell him Hans or Bonny's whereabouts.
Billy goes to Costello's house to meet up with his girlfriend, Angela, who is also the girlfriend of Charlie. After revealing to her that he kidnapped Bonny, she calls Charlie to tell him, but Billy shoots her after handing her a playing card, revealing himself as the Jack of Diamonds serial killer. Meanwhile, Charlie, at the warehouse, grieves over Bonny's absence, and discovers dozens of packs of playing cards, all with the Jack of Diamonds cards missing, realising that Billy is the Jack of Diamonds.
Marty, Billy and Hans leave town with Bonny to escape Charlie. Hans reveals that he was the Quaker, and survived his attempted suicide. Marty unknowingly wrote his story after hearing it from a drunken Billy. The trio drive into the desert. Billy suggests Seven Psychopaths end with an emotional shootout between the psychopaths and Charlie's forces. Marty and Hans see a headline saying Billy is wanted in connection with the Jack of Diamonds killings. Marty confronts Billy, who reveals he assumed the Jack of Diamonds persona and went on a killing spree to give Marty inspiration for Seven Psychopaths. Disillusioned, Marty tells Billy they must go home. Meanwhile, Hans has a vision of Myra in a "grey place". Hans questions his belief in the afterlife, dismissing Marty's reassurances that his vision was a peyote-induced hallucination. Billy sets fire to the car, stranding the trio in the desert, and calls Charlie, telling him their location. Billy intends to make the climactic shootout he envisioned a reality. Billy claims he caused the hallucination by impersonating Myra, causing Hans to leave.
Charlie arrives alone, without a weapon besides a flare gun in his car. Billy shoots Charlie, enraged that he has not brought the men and weapons required for a satisfying shootout. Hans finds Charlie's thugs waiting for a flare signal nearby. Marty drives away with Charlie, intending to take him to a hospital. Billy realizes the flare gun's purpose and fires it. Hans motions as if to draw a weapon, causing Paulo to shoot him in front of police. Before dying, Hans says "It isn't grey at all", restoring his faith in the afterlife. The thugs head towards Billy's flare, police in pursuit, only to encounter Marty and Charlie's car on the road. Charlie reveals that he only suffered a flesh wound. Now with backup, Charlie returns to Billy and Bonny's location. After a shootout, Charlie and Billy have a stand-off, holding Marty and Bonny hostage respectively. Charlie releases Marty and shoots Billy just as the police arrive. Charlie and Paulo are arrested, but Bonny stays at the dying Billy's side. Marty visits the scene of Hans's death, and finds a tape recorder with suggestions for Seven Psychopaths on his body. Later, Marty finishes the screenplay at home, having adopted Bonny as a pet. Marty steps outside and walks down the street, script in hand.
In a post-credits scene, Zachariah, who has just watched Seven Psychopaths, calls Marty, telling Marty that he will be over to kill him on Tuesday for forgetting to leave a message in the credits as promised. On hearing Marty's resigned acceptance, Zachariah realizes that Marty's experiences have left him a changed man, and decides to spare him.