Sonny returns to New Orleans' French Quarter when he finishes his three-year hitch in the army. His mother, Jewel, is not only surprised since he didn't call ahead, but eager for Sonny to return to his former trade as a male prostitute serving older female clients. Jewel, a former prostitute herself, has a new girl, Carol, who's working out well, and Jewel just knows that if Carol and Sonny worked doubles, her son servicing the woman while Carol takes the man, they'd make big money.
However, Sonny has other plans. His army friend Jesse has promised Sonny a job at his father's Texas bookstore. Sonny just needs some good clothes and a bit of traveling money. While trying on suits (and asking if there's a job opening), Sonny is interrupted by Meg, a former client who tells her friend Sonny is the one she's gushed about. It's clear she's still interested.
Jewel's boyfriend Henry, a shoplifter and thief who barely makes enough to rent a room, buy a bottle, and pay his losses at his daily gin game with his friend, pours Sonny a drink. It's too late for him, Henry explains, but Sonny can still get out, do something with his life.
Sonny and Carol soon sleep together. She is duly impressed with Sonny's skills as a lover, so much so that she not only pays him but loans him the car she's borrowed from Troy, a car-dealer client who asks Carol to marry him often. On arrival in Texas, Sonny is disappointed to learn there is no job. Jesse's father has died, leaving debts, and the bookstore has a new owner.
Jesse has something for Sonny, though. His girlfriend has a sister Gretchen, a pretty blond. Why don't they go on a double date? Sonny isn't sure; he's been with lots of women but never had a date. Jesse convinces him to give it a chance. They pick the girls up at church, spend the day and the evening with them, and Sonny ends up having sex with Gretchen, who jokingly suggests that since Sonny's job disappeared, he should do that for a living.
He tells her he used to. Gretchen fails at covering her appalled reaction. She gets up, ostensibly to use the bathroom, but Sonny finds her drinking cough syrup to get high. He loses his temper, throwing the bottle, which shatters, then tearing the bathroom apart, finding more, throwing them, shouting at her for being a junkie. Jesse is angry, and the girls yell at Sonny to get out.
Sonny drives home. A business acquaintance who runs her own whorehouse refers Sonny to a client, and it's Meg, whose husband is out of town. Sonny performs to her complete satisfaction, but she doesn't have enough cash to pay his usual $200 fee. He accepts $150 and her promise to refer any friends who could use his services.
Meg comes through, sending Sonny (in a hastily-borrowed police uniform Henry got for him) to the lavish home of an older woman with a cop fetish. Sonny is grossed out by what she asks that he do with his nightstick, but he needs the money. When she, too, attempts to deliberately underpay him, he throws a bottle into a large mirror, then destroys a television before she agrees to pay. In the car, Sonny is furious with himself and the life he's leading.
Jewel has sent Carol to a nearby town to work for a week. Jewel needs her cut of the money; she worries a lot that she has nothing to show for a life of work, only what she can earn through her girls--and Sonny, who picks Carol up when the week ends. He's known the man running the operation for years, and asks what his father looked like after he shows Carol a hole in the lobby wall where his father defended his mother from a possessive pimp. The man says he cannot remember.
Henry gives his last forty bucks to his gin-playing friend just before Jewel reminds him he needs to take her to Antoine's for her birthday. She sends him out to steal something. Dressed with outdated flash at the expensive restaurant, they are seated, and the evening seems very special. Jewel has slipped off her high heels, and the waiter insists she put them on. When she explains she always does this and it's not hurting anyone, he insults them both. Henry, who's already drained a glass of wine for liquid courage, threatens the waiter with a knife, demanding an apology, which is forthcoming. The discuss whether they should "tell him," but Henry insists they cannot.
Sonny and Carol are now a couple. Jewel has finally worn Sonny down. He and Carol word a double, attending a party as a couple, then being last to leave so each can sexually service his or her client in private. Sonny finishes first and watches Carol finish up. They leave as the couple's kids come in.
It's raining, and they go for a drive in the country, during which Carol wonders if they should both leave the life, maybe get married and try something else in a new place. Sonny refuses to walk in the rain with her, since he's wearing an expensive white suit, but she won't get back in the car. He finally parks and they walk until it starts to pour. They make a run for a barn where Carol tears up over a dog with young puppies.
As a whore, she tells Sonny tearfully, she has no right to have a baby. She wants things to be different some day, to be like other people. His attempts to calm her upset her more, and culminates in her telling him Jewel never wanted him, he was an accident. Sonny doesn't want to hear it. He won't leave Jewel, who needs him. Carol says she's done, that she's going to accept Troy's next marriage proposal.
Henry finally wins a gin game with his friend, and feels his luck is changing. It is. When he leaves, he pulls right in front of a truck and is killed in the accident. At home after the funeral, Jewel tells Sonny that Henry wasn't just a good man but his father, conceived in a short, special time when she was first selling herself and only to him.
Sonny's furious that they kept this from him. He dumps the coffee table and storms out, getting rapidly drunk in a series of French Quarter bars until he's worked up the nerve to visit Acid Yellow, who runs a stable of male whores--who service men, not women. Acid Yellow isn't feeling well, and neither is the young man who usually services Mr. Penn, who's due any minute. Sonny offers to take the client; he's interested in some 'rough trade' because he has so much energy borne of anger.
Mr. Penn is a submissive seeking to be punished, but Sonny unleashes his anger, punching him with fists and throttling him until Acid Yellow stops him, with the aid of the house bouncer, who beats Sonny.
At home, Sonny examines Henry's few things, especially his beat-up hat. He is feeling sorry for himself when Carol arrives to pack up her things. She's marrying Troy and leaving. She makes it clear she'd rather go with Sonny, but he does not offer himself.
She goes outside, taking the keys to the car she loaned him when they first met. Sonny follows her and sees that she's crying in the car. He fantasizes chasing the car, her getting out and running to him, a big clinch in the street--but turns to go back into the house, and his life as a whore, without doing it.