A violent outlaw band led by [Eric Roberts] as Blackjack Britton and [Peter Stormare] as Cavin Guthrie robs a bank. During the ensuing gunfight, a prostitute named Dolly Sloan (Shannon Kenny) is shot and dies in the arms of Cavin's nephew, Sonny Miller (Brad Rowe). The gang flees, pursued by a posse, and manages to escape through a dust storm by following a tunnel into a green valley.
The town of Refuge welcomes them, but its residents do not carry guns or swear, and they flock to the church whenever the bell tolls, creating an eerie calm in contrast with the outlaws' violence. The youngest gang member, Sonny Miller, thinks he recognizes some of them from the dime novels he reads. He befriends a woman named Rose (Amelia Heinle), who deflects his questions and asks some pointed ones of her own, beginning with "How many men have you killed?" The rest of the outlaws occupy the saloon and begin causing trouble. One of the gang members is struck by lightning when he prepares to throw his knife at the church door. His body is carried away by a Native American, who guards the gates to a mist-filled property outside of town. Saginaw Grant as Gatekeeper.
As Sonny investigates further, he realizes Refuge is inhabited by former notorious gunfighters: Wild Bill Hickok (Sam Shepard) as the town's sheriff; Jesse James (JD Souther); Billy the Kid (Donnie Wahlberg); and Doc Holliday (Randy Quaid), though they deny their identities to him. Later, he talks to Lamb and 'Lefty' Slade (John Dennis Johnston) who admits who he really is. Before Sonny can ask more questions, Blackjack's men tear up Lamb's garden. Enraged, Lamb beats one to death with his shovel and is led away by the Gatekeeper.
Among Blackjack's men is Jacinto (Michael Shaner). While talking to Doc Holliday, Sonny lets slip the true nature of their gang and Sheriff Forrest asks them to saddle up and leave town. Blackjack orders his men to assemble in the saloon, except Sonny, who is ejected but returns to eavesdrop on the plan to rob Refuge on the way out, while Cavin plots to rape Rose. Sonny joins the townspeople in church, where he begs them to defend themselves. They finally admit to Sonny that Refuge is a form of Purgatory. If they can endure 10 years while resisting the temptations of their former lives, they will be admitted to Heaven. They are reluctant to face off against Blackjack's gang because it would cost them their respite. A frustrated Sonny leaves the church and is jumped by Blackjack and Cavin, who beat him unconscious.
The next morning, a battered Sonny straps on his guns and prepares to face Blackjack's gang alone. The town bells summon the faithful, and Hickok, Holliday, James, and Billy join Sonny, inspired by his willingness to die to protect Rose. A brutal shootout erupts, in which Blackjack's gang is slaughtered, but Cavin manages to shoot Sonny before being killed by him in return. Sonny, though fatally wounded, does not feel pain and does not die. Hickok welcomes him to Refuge, realizing that Sonny has earned his second chance. When Blackjack arrives and challenges Hickok, he loses. "I guess I'm one of you now," Blackjack jokes, realizing the truth of the situation. "I wouldn't count on it," Hickok replies before dispatching him.
The Gatekeeper carries the bodies of Cavin and Blackjack beyond the misty gates to the edge of a fiery pit, where they are cast screaming. Hickok and the others follow, but a stagecoach arrives and the driver explains that by their willingness to sacrifice their chance at a better future to protect the others, they have earned a place in Heaven. "The Creator may be tough, but He ain't blind," the driver says. Sonny asks to stay behind with Rose, and Hickok hands him the sheriff's badge. The coach then leaves, riding upward into the light.