David is drinking alone, watching night fall from the window of his house in the south of France. He remembers the events of his life that have gotten him to this sad point. In Paris, he proposed to a girl named Hella, but at the same time he had an affair with a man named Giovanni. Now Hella is on a boat back to America, and Giovanni is going to the guillotine.
David remembers when he was a young man in Brooklyn and had his first romantic experience with another man. His name was Joey. David was ashamed afterwards and, now, looking back, he thinks that he has been running from that experience his entire life. (Now we jump into a flashback and learn about David's past.) David's mother dies when he is five. He grows up with his father and his aunt Ellen. Ellen is an overbearing presence in the house, whereas his father, though an alcoholic, just wants to be friends with David. Yet, as David grows more similar to his father, the two of them grow apart.
When David leaves Brooklyn and moves to Paris, he's very poor. He calls up an acquaintance, Jacques, in order to ask for money. Jacques is a lonely gay man who has to buy friends. The two of them go out to a gay bar owned by a man named Guillaume. As soon as they walk in, Jacques notices the new bartender, Giovanni, and he tries to flirt with him. Yet when Guillaume comes over to talk with Jacques, David and Giovanni end up chatting and buying each other drinks.
Giovanni is Italian and very clever. It's immediately clear that he likes David. They discuss the differences between America and Paris and the way that different cultures view time. When Giovanni goes to help another customer, a flamboyantly gay man approaches David and begins teasing him. When David tells him to get lost, he becomes serious. He tells David that Giovanni is very dangerous and he predicts that the two of them will be unhappy.
When Jacques returns to the bar, he points out that everyone has noticed how well David and Giovanni get along. David resents Jacques's nosiness, and wants to leave and go pick up a girl. But instead, he decides to get drunk. He realizes that it doesn't matter whether or not he leaves because something has already happened. Reflecting back on this experience from his house in the south of France, David thinks that he will never be able to get the image of Giovanni out of his mind.
At five in the morning, Guillaume, Jacques, Giovanni, and David decide to take a taxi to Les Halles to get drinks. David is uncomfortable on the ride there and resolves to explain the misunderstanding to Giovanni as soon as they are alone.
Giovanni takes them to a small café where he seems to know everyone. A large domineering woman named Madame Clothilde is working the counter, and she is instantly charmed when she sees David. In a moment alone, Jacques counsels David to appreciate what he has found and not to be ashamed – to love Giovanni with all his heart.
Giovanni and David go to eat oysters together in the dining room while Jacques and Guillaume flirt with young boys. Giovanni tells David the story of how he came to work for and be dependent on Guillaume. He makes it clear that he hates and pities the man. David and Giovanni leave together, and at Giovanni's insistence, David goes Giovanni's apartment. Inside, Giovanni quickly embraces him and pushes him to the bed. David wants to resist, but finds that he can't and that, in reality, he is enormously relieved.
Back in present in the south of France, the caretaker comes to do the inventory before David moves out. She is concerned because she has noticed that David has remained in the house for several days. As she examines the rooms, she inquires after Hella. From David's answers, she gathers that Hella has left him and encourages him to find another girl to marry and to begin praying. David is touched, but is embarrassed by how naked he feels before the woman. When she goes to leave, he wonders why it is that he wants to be forgiven by her.
David makes the last preparations before leaving and remembers the room that he and Giovanni had, which Giovanni planned to remodel. He thinks that the last thing Giovanni will see before he dies is the low grey sky of Paris, the same sky beneath which they used to wander on so many desperate and drunken mornings.
(Back to flashback.) David moves into Giovanni's room, and the two of them lead a blissful and leisurely life together. Yet, just below the surface, it is apparent that they are both anguished and afraid and know that things are spiraling toward tragedy.
Once David finally tells Giovanni about his girlfriend Hella, Giovanni begins to pry. They become irritated with one another, and David knows that part of him is resisting Giovanni with all his heart. Perhaps he is only afraid of the moment when they will separate, but his love is twinned with hatred that he can't control.
Living in Giovanni's room, which Giovanni constantly talks about renovating, David begins to have a sense of Giovanni's inner despair. For his own part, he knows that sooner or later Hella will return (she's been in Spain) and he and Giovanni will separate.
One day, David gets two letters – one from his father and one from Hella. His father asks him to come home and wants to know what is keeping him so long. Hella announces that she will be back from Spain in a few weeks and that her answer to David's proposal of marriage is yes. David sits there and begins to feel very afraid.
He goes down looking for girls in Montparnasse. He finds a girl named Sue, who he propositions. They go back to her apartment and have sex, and Sue tries to be friendly afterwards, but David brushes her off. He can tell that she is terribly lonely and in need of love, and he feels that what he did with her was immoral. When she opens the door, the two of them pass out into the night and go their separate ways.
When David returns home, he finds Giovanni in despair. Guillaume made a horrible scene at work. Out of jealousy and spite, he accused Giovanni of being a bastard and a thief. Giovanni attacked him and was thrown out. Telling the story, Giovanni says that, if it weren't for David, he would have no reason to keep living. David consoles him, but feels an incredible burden.
In the present, David imagines all of the details of the eve of Giovanni's execution. He admits to himself that he loved Giovanni more than he would ever love anyone again, and hopes that Giovanni has someone to make love to before he is killed.
(Back to the flashback.) Giovanni begins to do renovations on his room, trying to create a sunken bookcase by carving one into the wall. He becomes suspicious that David will leave him, and nags him about it. David says that he wants to get out of Paris, and Giovanni agrees to go with him wherever he wants. Knowing all the while that Hella will return, David can't bring himself to break with Giovanni. Thinking back, he realizes that he and Giovanni were like murderers, each complicit in the murder of the other.
When Hella arrives in Paris, David leaves to greet her without telling Giovanni. She has made up her mind to marry David. The two of them joke and flirt together for days.
Three days later, David and Hella run into Jacques and Giovanni in a bookshop. Giovanni has been looking for David desperately. He is furious with him for leaving. David and Jacques do their best to avoid a scene.
Back in the hotel room, Hella asks about Giovanni. David lies, saying they are just roommates and that the reason Giovanni is upset is because he lost his mistress and his job. They discuss Giovanni's passionate nature and his worship of David, and David says that he and Hella need to leave Paris because he feels like Giovanni is suffocating him.
The next evening, David goes to see Giovanni. He finds him in tears. Giovanni is furious with David. He accuses him of never having loved anyone and of being cruel. Giovanni tells David his story. He used to be married in a little village in Italy. Yet when his wife delivered a stillborn child, he gave up his family and his faith and left. David tries to comfort Giovanni with no success, and they part bitterly.
As David and Hella make wedding plans, Giovanni begins to be seen around town with Jacques. Soon after, Giovanni and Jacques break up and Giovanni is seen hanging out with poor street-boys. David tracks down Yves for news of Giovanni.
Yves tells him that Giovanni is going to get his job back at Guillaume's. A week later, Guillaume is found dead above his bar, strangled with the sash of his dressing gown.
The murder causes an enormous scandal in the city. The papers paint Guillaume as part of the line of a proud French family and Giovanni as an ungrateful Italian gangster. When Giovanni is found, he still has Guillaume's money on him. He pleads guilty and is sentenced to death.
David is in a state of despair. Hella understands that he is sad for his friend, but does not know the sources or understand the depths of his guilt. The two of them go to a house in the South, but they are distant and David can no longer take pleasure in his fiancé. Jacques sends him updates on Giovanni, and he knows that there is nothing either of them can do.
Hella finally begs for David to tell her what is wrong. She knows it has to do with Giovanni, but can't understand where her fiancé had gone. David tries to console her with no success. Soon after, he goes looking for a sailor to sleep with and Hella follows him. When she finds the two of them drinking together in a bar, she announces that she is going home to America.
Hella is angry with herself for not admitting what she knew earlier. She tries to be gentle with David as she packs, but is furious and distraught. When her taxi leaves, David waves but Hella doesn't wave back.
(Back to the present.) The book closes with David alone in the house, about to leave on a bus for Paris. Jacques has sent him a blue envelope containing the date of Giovanni's execution. David doesn't open it. As he gets dressed, he imagines in minute detail Giovanni being removed from his cell and dragged down to the guillotine. He looks at his own naked body and thinks that he does not understand it.
David leaves the house. As he walks to the bus stop, he tears up Jacques's envelope and throws it into the wind. Yet, the wind blows the pieces against his back.