Действие первое
Тирольские горы. Маркиза Беркенфилд и ее дворецкий Гортензио вынуждены прервать свое путешествие в Австрию, потому что французская армия заняла окрестности. Узнав от крестьян, что французы отступили, маркиза сожалеет о своей судьбе, о трудностях, которые обрушились на нее в связи с войной (куплеты “Pour une femme de mon nom”).
Появляется Сюльпис, сержант 21-го полка. Гортензио просит его позволить маркизе продолжать путь. К Сюльпису присоединяется Мари, маркитантка – «дочь полка», сирота, выросшая под опекой гренадеров. Сюльпис расспрашивает девушку о молодом человеке, с которым ее недавно видели. Мари отвечает, что это местный юноша, тиролец, недавно спасший ей жизнь, несмотря на то, что принадлежит к враждебному французам местному населению. Гренадеры 21-го полка тем временем приводят пленного. Это тот самый тиролец Тонио: он разыскивал Мари. Девушка заступается за него, Тонио рад стать другом французским солдатам. Мари поет полковую песню (“Chacun le sait”). Тонио признается Мари в любви, Сюльпис оказывается свидетелем их объяснения. Мари вынуждена объяснить Тонио, что она может выйти замуж только за солдата 21-го полка.
Маркиза просит Сюльписа выделить ей провожатых до замка Беркенфилд. Название кажется сержанту знакомым, он припоминает, что оно значилось в записке, найденной вместе с Мари много лет назад. Маркиза объявляет, что знала отца девочки и что Мари – давно пропавшая дочь ее сестры. Ребенок был оставлен на попечение маркизы, но пропал во время сражения. Маркиза недовольна манерами девушки и требует, чтобы та отправилась с ней в замок, где получит надлежащее воспитание. Тонио завербовался в полк, чтобы получить право жениться на Мари (“Ah, mes amis”), но девушке приходится покинуть и полк, и возлюбленного (“Il faut partir”).
Действие второе
Маркиза намерена выдать Мари замуж за Сципиона, племянника герцогини Кракенторп. Сюльпис, долечивающийся после ранения, прибывает в замок и собирается помочь маркизе осуществить ее планы. Маркиза дает Мари уроки пения, сама аккомпанируя за фортепиано. Ободренная присутствием Сюльписа, Мари пропевает несколько фраз из полковой песни, что невероятно раздражает Маркизу (Trio: “Le jour naissait dans la bocage”). Оставшись одна, Мари размышляет о бессмысленности денег и положения в обществе (“Par le rang et l’opulence”). Она слышит, как в отдалении маршируют солдаты. Гренадерский полк заполняет замок, Мари радостно приветствует старых друзей. Тонио, дослужившийся до офицера, вновь просит руки Мари (“Pour me rapprocher de Marie”), но Маркиза объявляет, что ее племянница помолвлена с другим, и отказывает юноше. Наедине с Сюльписом маркиза раскрывает правду: Мари ей не племянница, а внебрачная дочь, от которой она когда-то отказалась, опасаясь осуждения общества.
Гортензио возвещает о прибытии гостей и участников свадебной церемонии во главе с герцогиней Кракенторп. Мари не желает даже выходить из своей комнаты. Сюльпис открывает ей, что маркиза – ее мать. Ошеломленная этой новостью девушка готова уступить воле матери и выйти за нелюбимого. Мари уже готова подписать брачный контракт, но гренадеры под предводительством Тонио врываются в зал, чтобы спасти свою «дочь полка». Благородные гости шокированы, узнав, что Мари в прошлом – маркитантка, но они смягчаются, услышав, как она описывает свое детство и признается, что никогда не сможет сполна отплатить солдатам полка за их заботу о ней. Маркиза настолько тронута словами девушки, что разрешает ей выйти замуж за Тонио. Общий финальный гимн “Salut à la France” венчает оперу.