At a cocktail party in Magda's salon, Prunier declares that love is in the air. He begins to sing his latest song, which Magda completes (Aria: Chi il bel sogno di Doretta). She explains that as the kept woman of Rambaldo, she does not know true love; she recalls her youth, her aunt, and a young student she met and loved briefly (Aria: Ore dolci e divine). The young man, Ruggero, enters with an introduction to Rambaldo and asks where he may find the best place to spend an evening in Paris. All the guests agree that it is Bullier's and, after they leave, Prunier returns in secret to escort the maid Lisette to that cabaret. Later, on a whim, Magda disguises herself and also goes.
At Bullier's, everyone is singing and dancing. Magda meets Ruggero, and they dance and fall in love. Lisette recognizes Magda, but Prunier tells her she is mistaken. At the table, Lisette confesses to borrowing Magda's clothing and jewelry. Rambaldo enters, and Magda quietly has Prunier hide Ruggero. Rambaldo demands an explanation; she explains that she has found true love and wants to leave him for Ruggero. After Rambaldo leaves, Ruggero returns, and the couple confess their love.
Magda and Ruggero are living in a cottage by the sea. He has no idea how they will pay their mounting bills and he tells her that he has written to his parents for permission to marry her (Aria: Dimmi che vuoi seguirmi). Magda is deeply touched, but knows that she can never marry him because of her past. Prunier and Lisette arrive. She has had a disastrous and brief career as an actress, constantly criticised by Prunier; she begs for her job back, and Magda consents. Prunier delivers the message that Rambaldo wants her back, and tells her that she cannot maintain a life in the cottage. Ruggero returns with the letter permitting the marriage, but Magda finally tells him everything. Like a swallow, she flies back to Rambaldo, leaving Ruggero heart-broken.
Alternative Ending
As staged by companies such as the Washington National Opera and the Los Angeles Opera (following research by and under the direction of stage director Marta Domingo), Ruggero receives a letter from his mother revealing the true name of "Paulette" (the name Magda has used during her time with the young man) and that she is the mistress of Rambaldo. He is angered and asks who she is and why she lied to him. She says that she thought he could save her from the life she was leading. He leaves her, and distraught she looks towards the sea saying she will fly there like a swallow. She walks into the sea to drown herself as the opera ends.