Rudy Duncan (BEN AFFLECK), who's incarcerated for grand theft auto, and his cellmate, Nick Cassidy (JAMES FRAIN), have only a few days to go before they're released from prison. While Rudy can't wait to get home for Christmas dinner, Nick pines away for his pen-pal sweetheart, Ashley (CHARLIZE THERON), a woman he's never met and who's never even seen a picture of his face.
Things take a turn for the worse when Nick is killed in a prison riot, but when Rudy is finally released and spots the gorgeous Ashley whom he's heard so much about, he decides to pose as Nick for some quick, noncommittal romance. Although Ashley isn't aware of Rudy's ruse, their weekend of love is interrupted when her gunrunner brother, Gabriel (GARY SINESE), and his team of thugs confront the two.
It seems that Ashley previously told Gabriel about Nick's former job at an Indian reservation casino, and with everyone thinking Rudy is Nick, they want his knowledge about the place so that they can rob it. Although Rudy repeatedly states that he's not Nick and tries to prove his true identity, the others won't believe him. When faced with possible execution, he decides to re-embrace his new alter ego.
From that point on, Rudy tries to figure out a way to either fool or get away from Gabriel and his thugs as they plot, stake out, and eventually try to rob the Tomahawk Casino that's run by James Banks (DENNIS FARINA).