Act 1
War is raging in the Tyrols and the Marquise of Berkenfield, who is traveling in the area, is alarmed to the point of needing smelling salts to be administered by her faithful steward, Hortensius. While a chorus of villagers express their fear, the Marquise does the same: Pour une femme de mon nom / "For a lady of my family, what a time, alas, is war-time". As the French can be seen to be moving away, all express their relief. Suddenly, and provoking the fear of the remaining women who scatter, Sergeant Sulpice of the Twenty-First Regiment of the French army arrives and assures everyone that the regiment will restore order.
Marie, the vivandière (canteen girl) of the Regiment, enters, and Sulpice is happy to see her: (duet: Sulpice and Marie: Mais, qui vient? Tiens, Marie, notre fille / "But who is this? Well, well, if it isn't our daughter Marie"). Then, as he questions her about a young man she has been seen with, she identifies him as Tonio, a Tyrolean. At that moment, Tonio is brought in as a prisoner, because he has been seen prowling around the camp. Marie saves him from the soldiers, who demand that he must die, by explaining that he had saved her life when she nearly fell while mountain-climbing. All toast Tonio, who pledges allegiance to France, and Marie is encouraged to sing the regimental song: (aria: Chacun le sait, chacun le dit / "Everyone knows it, everyone says it"). Sulpice leads the soldiers off, taking Tonio with them, but he runs back to join her. She quickly tells him that he must gain the approval of her "fathers": the soldiers of the Regiment, who found her on the battlefield as an abandoned baby, and adopted her. He proclaims his love for her (aria, then love duet with Marie: Depuis l'instant où, dans mes bras / "Ever since that moment when you fell and / I caught you, all trembling in my arms..."), and then the couple express their love for each other.
At that point, Sulpice returns, surprising the young couple, who leave. The Marquise arrives with Hortensius, initially afraid of the soldier, but is calmed by him. The Marquise explains that they are trying to return to her castle and asks for an escort. When hearing the name Berkenfield, Sulpice immediately recognizes it from a letter found with Marie as an infant. It is discovered that Marie is actually the Marquise's long-lost niece. Marie returns and is surprised to be introduced to her aunt. The Marquise commands that Marie accompany her and that she will be taught to be a proper lady. Marie bids farewell to her beloved regiment just as Tonio enters announcing that he has enlisted in their ranks: (aria: Ah! mes amis, quel jour de fête / "Ah, my friends, what an exciting day"). When he proclaims his love for Marie, the soldiers are horrified, but agree to his pleading for her hand. However, they tell him that she is about to leave with her aunt: (Marie, aria: Il faut partir / "I must leave you!"). In a choral finale in which all join, she leaves with the Marquise and Tonio is enraged.
Act 2
Marie has been living in the Marquise's castle for several months. In a conversation with Sulpice, the Marquise describes how she has sought to modify most of Marie's military manners and make her into a lady of fashion, suitable to be married to her nephew, the Duke of Crakenthorp. Although reluctant, Marie has agreed and Sulpice is asked to encourage her. Marie enters and is asked to play the piano, but appears to prefer more martial music when encouraged by Sulpice and sings the regimental song. The Marquise sits down at the piano and attempts to work through the piece with Marie who becomes more and more distracted and, along with Sulpice, takes up the regimental song.
Marie is left alone: (aria: Par le rang et par l'opulence / "They have tried in vain to dazzle me"). As she is almost reconciled to her fate, she hears martial music and is joyously happy (cabaletta: Oh! transport! oh! douce ivresse / "Oh bliss! oh ectasy!"), and the Regiment arrives. With it is Tonio, now an officer. The soldiers express their joy at seeing Marie, and Marie, Tonio and Sulpice are joyfully reunited (trio, Marie, Sulpice, Tonio: Tous les trois réunis / "We three are reunited"). Tonio mentions he has just learned a secret, via his uncle the burgermeister, that he cannot reveal.
The Marquise enters, horrified to see soldiers. Tonio asks for Marie's hand, explaining that he risked his life for her (aria, Tonio: Pour me rapprocher de Marie, je m'enrôlai, pauvre soldat / "In order to woo Marie, I enlisted in the ranks"), but she dismisses him scornfully. Tonio reveals that he knows that the Marquise never had a niece. She orders him to leave and Marie to return to her chambers; after they leave, the Marquise confesses the truth to Sulpice: Marie is her own illegitimate daughter. In the circumstances, Sulpice promises that Marie will agree to her mother's wishes.
The Duchess of Crakenthorp, her son the groom-to-be, and the wedding entourage arrive at the Marquise's castle. Marie enters with Sulpice, who has given her the news that the Marquise is her mother. Marie embraces her and decides she must obey. But at the last minute the soldiers of the Regiment storm in (chorus: soldiers, then Tonio: Au secours de notre fille / "Our daughter needs our help") and reveal that Marie was a canteen girl. The wedding guests are offended by that fact, but are then impressed when Marie sings of her debt to the soldiers (aria, Marie: Quand le destin, au milieu de la guerre / "When fate, in the confusion of war, threw me, a baby, into their arms"). The Marquise is deeply moved, admits she is Marie's mother, and gives her consent to Marie and Tonio, amid universal rejoicing (final chorus: Salut à la France! / "Hurrah for France! For happy times!").