Acte I
Une bataille napoléonienne fait rage dans les montagnes du Tyrol. Les paysans implorent l'aide de la Vierge Marie, tandis que la marquise de Berkenfield et son majordome Hortensius, impliqué dans la guerre lors d'un voyage, s'inquiètent pour leurs propriétés. Les Français arrivent : Sulpice, un sergent du vingt-et-unième régiment, et Marie, le majordome, une orpheline trouvée sur le champ de bataille et adoptée par les rudes mais tendres soldats qui sont devenus ses pères. Marie n'aime rien tant que la musique du tambour : depuis quelques jours, cependant, elle a perdu sa gaieté habituelle. Sulpice l'interroge à ce sujet : quelqu'un l'a vue avec un jeune homme inconnu. C'est un Tyrolien, explique-t-elle, qui l'a sauvée d'une chute dans une crevasse. Sulpice lui rappelle cependant qu'elle ne peut épouser qu'un soldat du 21e régiment. À ce moment-là, le jeune homme, Tonio, est amené dans le camp par des soldats français qui l'ont pris pour un espion et l'ont attaché. Marie intervient pour le défendre et Tonio décide de s'engager dans l'armée pour rester à ses côtés. Pour fêter l'événement, les soldats demandent à Marie de chanter la chanson du régiment. Restée seule, Marie est rejointe par Tonio : ils se déclarent leur amour. Tonio, devenu soldat du régiment, demande à ses compagnons d'armes d'épouser Marie et obtient leur accord. La marquise est de retour et demande un laissez-passer. Son nom, Berkenfield, figure sur des documents trouvés sur Marie. La marquise les examine, déclare que Marie est sa nièce et qu'elle doit vivre avec elle dans son château. Tonio et les soldats se désespèrent : Marie chante un adieu larmoyant à ses amis et à son amour.
Acte II
Dans le château de la marquise, qui est choquée par les manières de soldat de sa nièce, Marie prend une leçon de chant, mais elle regrette les chansons joyeuses du régiment aux côtés de Sulpice. Mais Marie apprend qu'un mari a été choisi pour elle et que ses invités et sa redoutable future belle-mère, la duchesse de Krakenthorp, vont bientôt arriver. Mais les soldats du 21e régiment arrivent avant elle avec Tonio, devenu entre-temps capitaine. Marie et Tonio décident de fuir. La marquise avoue à Sulpice que Marie est en fait sa fille, née d'une liaison avec un officier français. Marie ne veut pas déplaire à sa mère. Cependant, lorsque les invités au mariage sont réunis, Marie se souvient avec émotion de son enfance et de sa vie de cantinière. Les invités aristocrates sont consternés, mais la marquise est si émue qu'elle revient sur le contrat de mariage et bénit le mariage de Marie et Tonio. Tout le monde se réjouit.