An American man named David peers out the window of a house he rented with his fiancée, Hella, in the South of France. Alone, he gets drunk and stares out at the darkness, thinking about the demise of his relationship with Hella and realizing that he never truly loved her. This makes him think about Giovanni, an Italian man he fell in love with while living in Paris. David felt (and still feels) strongly for Giovanni, and he laments his inability to embrace these feelings—an inability he believes led to Giovanni’s imprisonment and execution.
David remembers his first sexual encounter with another man. In this memory, he is a teenager in Brooklyn spending every summer day with a boy named Joey. At a sleepover one night, he and Joey kiss and become sexually intimate, and though he enjoys this experience, David can’t come to terms with what he’s done. Consequently, he hurries home in the morning and avoids Joey for the rest of the summer, thinking that his attraction to other men will not only threaten his masculine identity, but also break his father’s heart. This is especially important to David because he knows he’s the only thing his father has, since David’s mother died when he was five. And yet, he starts acting out as a teenager, bullying Joey and spending his time getting drunk with friends. At one point he crashes his car while driving drunk, and this event encourages his father to have a frank talk with him about what he’s going to do in life. Hoping to make his father happy, David eventually joins the Army, where he has a secret affair with another soldier who is discharged because everyone discovers that he’s gay. After returning from the Army, David travels to Paris with the hopes of to escaping the pressure he feels from his father to become a certain kind of man.
In Paris, David meets Hella, whom he asks to marry him. Not yet sure what she wants, Hella decides to travel in Spain while considering David’s proposal. As he waits for her, he runs out of money and gets kicked out of his hotel, so he calls Jacques, a wealthy older gay man who often spends money on attractive young men. Jacques takes David to dinner and gives him 10,000 francs. They then go to a bar popular among gay men and trans women, and though David pretends to be detached from this environment, everyone there knows who he is and is waiting for him to stop pretending to be heterosexual. While having drinks, Jacques and David notice that Guillaume, the owner of the bar, has hired a new server—Giovanni. Even David has trouble hiding his attraction to Giovanni, but Jacques is the one who openly flirts with him. When his attempt to entice Giovanni fails, though, Jacques asks David to offer Giovanni a drink, wanting the young server to come sit with them. At first, David refuses, but he eventually relents and asks Giovanni if they can buy him a drink. Just as he asks this, Guillaume appears behind Jacques and laughs heartily, saying that Jacques has finally corrupted David. As the two men fall into conversation, Giovanni reminds David that he has just offered him a drink, and David has no choice but to follow through. In this way, the two men begin a flirtatious conversation, though David is overwhelmingly aware that the entire bar is watching him talk to this handsome new server.
When the bar closes, David and Giovanni agree to go with Jacques and Guillaume to breakfast. Taking a cab to another part of the city, they end up at a small, dirty establishment where Giovanni used to be a regular costumer. Inside, Jacques and Guillaume quickly start flirting with several young and very poor boys sitting at the bar. While they are thus engaged, Giovanni and David retire to the dining room, where they drink white wine and eat oysters. Over the meal, Giovanni tells David the story of how he met Guillaume, saying that it was clear right away that Guillaume wanted to have sex with him. Because he had no money and needed a worker’s permit to get a job, though, Giovanni did what was necessary to please the old man. This, he says, is how he got his job at the bar, and though he didn’t manage to completely avoid Guillaume’s advances, nothing has happened between them for several weeks now.
Finally, David and Giovanni leave the restaurant. David says he must go back to his hotel to pay his outstanding bill, but Giovanni convinces him to come back to his room, saying that David will have to see it at some point anyway. Once inside the room, David is petrified as Giovanni pulls him toward the mattress, though he can’t deny his excitement. They have sex, and from this point on David and Giovanni develop a routine, as David starts living in the small room with his new lover. Each day they wake up late and walk through Paris until Giovanni’s shift at the bar, at which point David spends some time on his own before meeting up with Giovanni as the bar closes. Together, they have a drink, go to breakfast, and return to the room to have sex and sleep. Guillaume, for his part, comes to hate David because of his relationship with Giovanni, but neither David nor Giovanni care.
Despite his happiness, though, David has complicated feelings about his new relationship, blaming Giovanni for giving life to his otherwise secret sexual cravings. As a result, he both loves and hates Giovanni, and is unable to admit that he wants to have a long-term relationship with him. He makes this insinuation when he tells Giovanni that Hella will likely be returning to Paris soon. At first, Giovanni doesn’t see why this should matter, but he soon sees that David thinks Hella’s return will mean the end of their relationship.
Just as he predicted, David receives a letter from Hella one day explaining that she’ll soon be returning from Spain and wants to commit herself once again to their relationship. On this very same day, he receives a letter from his father, in which his father tells him that he won’t send any money because he doesn’t want David to waste it. Although he wants to help David, he doesn’t understand why his son is leading such a secretive life in Paris. What he really wants to ask, David knows, is if his son has met a woman, though both he and his father seem to understand that he can’t ask this because he wouldn’t be able to withstand the truth.
After reading his letters, David meets up with a woman named Sue and has sex with her. He does this because he thinks making love to a woman will help calm his nerves about Hella’s imminent return, but it only makes him feel sorry for Sue. Late that night, he comes home to learn that Guillaume has fired Giovanni from the bar. Frantic and drunk, Giovanni tells him that Guillaume publicly accused him of stealing because he has been refusing to sleep with Guillaume. Furious, Giovanni punched Guillaume and ran away. Still reeling, he tells David that he would be in a very dark place if he were on his own, and he makes David promise not to leave him.
On the day that Hella returns to Paris, David meets her at the train station without telling Giovanni where he’s going. Right away, he feels a sense of relief upon hugging her, though he can’t quite hide his reservations. Still, though, he decides not to worry about Giovanni, determined to spend the night with Hella without thinking about anything but his relationship with her. When she makes it clear that she’s ready to get married, he falters for a moment, clearly hoping that she will change her mind so that he doesn’t need to leave Giovanni. However, she tells David that she came back to Paris because she realized that all she wants to do is get married and start a family with him, and he tells her that this is exactly what he wants.
For three full days, David doesn’t return to Giovanni. On the third day, though, he and Hella encounter Jacques in a bookstore, and Jacques tells David that Giovanni called him asking for financial help, since he was left with no money. Just then, Giovanni enters the store and yells at David, saying that he thought he had died. Without skipping a beat, David smoothly introduces Giovanni to Hella. Right away, Giovanni understands what has happened but doesn’t keep himself from hiding his anger for the rest of the conversation. Meanwhile, Jacques takes delight in this awkward dynamic, proposing that they should all get a drink, though Hella insists that she’s too tired. On the way back to her hotel, she asks David about his relationship with Giovanni, and though he manages to come up with convincing answers by saying that Giovanni is simply an intense Italian man he lived with as a roommate, Hella senses that there’s something odd about their connection. All the same, she drops the matter.
In the coming weeks, David sees Giovanni with Jacques quite often. Even though he’s always dressed in Jacques’s fancy clothes, he looks unwell, and David can hardly stand it when he learns that Giovanni and Jacques have had sex. Before long, Giovanni stops spending time with Jacques and instead hangs around younger men who lead rougher lives. Because he’s no longer dating David, though, he decides to try to get his job back at Guillaume’s bar, since Guillaume is pleased about Giovanni and David’s breakup. To do this, Giovanni goes to the bar one night and speaks to Guillaume, who happily tells him to come back after closing. When he returns, Guillaume invites him upstairs, changes into a silk dressing gown, and pressures Giovanni into having sex with him. Afterward, he arrogantly informs Giovanni that he couldn’t possibly hire him again—a statement that enrages Giovanni so thoroughly that he beats Guillaume to the ground and strangles him with the sash of his gown before fleeing into the streets.
Everyone in Paris knows that Giovanni killed Guillaume, and the papers run wild with this news. As David and Hella follow the story, they make plans to rent a house in southern France, where they move shortly after Giovanni is found hiding in a houseboat. Giovanni pleads guilty and is held in jail until his trial. In the meantime, Jacques sends David periodic letters with information from Giovanni’s lawyer, but David knows that nothing will save Giovanni from execution. Sure enough, he is soon sentenced to death, and though David knew this would happen, he’s overwhelmed by sadness—so overwhelmed, in fact, that he gets drunk one night and goes into the city of Nice, where he spends three days drinking and having sex with a sailor. Finally, on the third day, Hella tracks him down and learns the truth about David’s sexual orientation, promptly packing her bags for the United States and bemoaning the fact that David kept such a secret from her for so long. Not long after she leaves, David receives a letter from Jacques informing him of the date of Giovanni’s execution. When this day arrives, David packs his bags and leaves the house in Southern France, picturing the execution and blaming himself for what has happened to Giovanni, whom he now recognizes was the love of his life.