The story focuses on Jane Hudson (Katharine Hepburn), a single, middle-aged elementary school (she refers to her position as "a fancy secretary") secretary from Akron, Ohio. She is on her summer vacation and is now enjoying her lifelong dream of a vacation in Venice after saving up money for the past few years for the big trip. During the water bus ride to the Pensione Fiorini, she meets two fellow Americans, Lloyd (MacDonald Parke) and Edith (Jane Rose) McIlhenny. At the hotel, they are greeted by Signora Fiorini (Isa Miranda), a widow who transformed her home into a pensione after World War II. Also staying at the property are Eddie Yaeger (Darren McGavin), a young American painter studying art, and his wife Phyl (Mari Aldon).
That evening, Jane walks to the Piazza San Marco, where the sight of so many couples leaves her slightly depressed. While seated in a caf, she becomes aware of a single Italian man watching her and quickly leaves.
The following day, Jane goes shopping and sees a red glass goblet in the window of an antiques store. Upon entering she discovers that the owner, Renato de Rossi (Rossano Brazzi), is the very man from whom she fled the night before. He assures her that the goblet is an authentic 18th century artifact, and she purchases it after he teaches her the art of bargaining. Hoping to see her again, Renato offers to search for a matching goblet. Jane is also pestered off and on during her stay by a friendly young Italian street urchin. The boy is present when Jane accidentally steps backward into a canal while focusing with her camera on a building.
The next morning, Jane returns to the shop and is disappointed to discover that Renato is not there. That evening, he comes to the pensione and confesses he is attracted to her. When Jane resists his advances, he warns her not to waste an opportunity for happiness, and she is about to agree to have dinner with him when the McIlhennys return from a shopping expedition on the island of Murano, during which they purchased a set of new red goblets similar to the one Jane bought. She accuses Renato of swindling her, but he assures her that some designs have been used for centuries on Murano and he insists that her goblet is an antique.
The two attend a concert at the piazza, where an orchestra plays the overture to La gazza ladra. When a flower seller approaches them, Renato is surprised when Jane chooses a simple gardenia instead of an orchid. They return to the pensione, where he kisses her, and she responds passionately and murmurs, "I love you," before rushing off to her room. The next day, she treats herself to salon treatments and new clothes in anticipation of their date that evening. While she waits for him at the piazza, Renato's assistant Vito (Jeremy Spenser) arrives and inadvertently reveals that he is Renato's son. Stunned to discover Renato is married and has several children, Jane takes refuge in a bar where she encounters Phyl, who confides her marriage is in trouble.
Upon returning to the pensione, Jane discovers Eddie is having an affair with Signora Fiorini. Renato arrives and tells her their relationship is none of her business. He admits he is married, but claims he and his wife are separated, a fact he concealed because he did not want to scare her away. He accuses her of being immature and unwilling to accept what she can have in reality instead of just longing for more. After dinner, Jane and Renato venture to Renato's apartment and their affair is consummated.
After spending time with Renato on the island of Burano, Jane, unwilling to remain in a relationship she knows is destined to end unhappily, decides to return home. Renato begs her to stay, but Jane insists it is better to leave the party before it ends. Although she asks him not to come to the train station, she hopes he will ignore her request. As the train begins to leave the station, Jane is thrilled to see Renato running toward it. He tries to hand her a package but the train is moving too quickly, so he opens it to reveal he had bought her another gardenia.