Действие первое
Король Густаво принимает в своём замке придворных. Оскар — паж короля — просит его ознакомиться со списком гостей, приглашённых на бал-маскарад. С радостью Густаво видит в нём имя тайно любимой им Амелии, жены Ренато, его лучшего друга и секретаря. Ренато предупреждает его о готовящемся покушении, но, уверенный в любви своих подданных, король не воспринимает угрозу всерьёз. Судья приносит приговор об изгнании колдуньи Ульрики. Густаво предлагает всем отправиться в жилище Ульрики, чтобы самим убедиться, справедливы ли слухи о её колдовстве.
Среди ожидающих предсказаний — слуга Амелии. Его госпожа хочет поговорить с Ульрикой наедине. Амелия признаётся колдунье, что любит Густаво, и просит избавить её от преступной страсти. Колдунья велит ей сорвать на кладбище волшебный цветок. Густаво, подслушавший разговор, решает пойти вслед за любимой. Но перед этим он хочет узнать и свою судьбу. Ульрика предсказывает ему скорую гибель. Убийцей станет тот, кто сегодня первым подаст ему руку. Им оказывается ничего не подозревающий Ренато. Густаво смеётся над предсказанием: верный друг не станет убийцей.
Действие второе
Амелия встречает на кладбище Густаво. Влюблённых застаёт Ренато: не узнав жену, он предупреждает друга о приближении заговорщиков и отдаёт ему свой плащ. Густаво берёт с него клятву, что тот проводит даму, скрытую под вуалью, не пытаясь узнать её имя. Заговорщики, встретившие вместо короля его секретаря, разъярены. Ренато обнажает шпагу. Чтобы спасти мужа, Амелия сбрасывает вуаль. Ренато потрясён предательством друга и решает отомстить.
Действие третье
Амелия молит супруга во имя сына сохранить ей жизнь. Появляются заговорщики. Жребий убить короля выпадает Ренато.
Во дворце Густаво подписывает указ о назначении Ренато послом в Англию: так он больше не встретится с Амелией. Паж передаёт королю письмо, в котором Амелия предупреждает о грозящей ему на маскараде смертельной опасности. Но Густаво думает только об одном: он в последний раз увидит любимую.
На балу среди гостей Амелия и Густаво прощаются навеки. Ренато, узнавший, в каком наряде король, стреляет в него и пытается скрыться, но придворные задерживают убийцу и срывают с него маску. Умирающий Густаво прощает друга и клянётся, что честь Амелии не была запятнана.