모든 장면은 트무타라카니 시, 부얀 섬에서 일어난다.
서막
세 자매는 오두막에서 옷을 짜면서 여왕이 되었으면 무엇을 할지에 대한 공상에 잠기고 있다. 황제는 엿듣고 있다. 밀리트리사라는 소녀의 전사 아들을 낳고 싶다는 소원은 황제의 마음에 든다. 방에 들어온 황제 살탄은 맏언니는 요리사가 되고, 가운데 언니는 직녀가 되고, 막내는 여왕이 되며 세 소녀 모두가 궁궐에서 살 것이라고 알려준다. 밀리트리사를 부러워하는 두 자매는 바바리하 할머니와 함께 밀리트리사의 행복을 망가뜨리기로 한다.
제1막
황제는 전쟁에 나가 있는 그동안에 여왕이 아들을 낳는다. 언니들과 바바리하는 황제에게 “여왕은 밤에 아들도 아니고 딸도 아니고, 생쥐도 아니고, 개구리도 아니고, 알 수 없는 동물을 낳았다»는 편지를 보낸다. 황제에게서는 «귀족들이 시간을 낭비하지 말고 여왕과 새끼를 통에 놓어 바닷속으로 던지라»는 답장이 온다. 밀리트리사와 왕자를 통에 놓고 바닷속으로 던지는 모습을 보는 일반인들이 울고 있다.
제2막
마침내 통은 부얀 섬의 황량한 해안에 밀려오고 통에서 밀리트리사와 커진 왕자가 나타난다. 왕자 그위돈은 활을 만들고 새를 사냥하러 바닷가로 간다. 귀돈은 큰 독수리가 따라가는 백조의 외침을 듣고 독수리를 죽인다. 백조는 왕자에게 선으로 상환하겠다고 약속하고 사라진다.
아침에는 멋진 도시 레데네츠가 안개 속에서 보인다. 그 주민들은 귀돈을 기쁘게 환영하며 도시를 다스리도록 요청한다.
귀돈은 왕자가 되었지만 아버지를 보고 싶어한다. 그는 샅탄 왕국으로 떠나는 배를 슬프게 바라본다. 백조가 바다에서 나타나서 돕기로 한다. 땅벌로 변화한 귀돈은 배를 따라간다.
트무타라카니에 있는 궁궐. 슬픔에 빠진 살탄은 왕좌에 앉아 있고, 옆에 요리사, 직녀, 바바리하가 있다. 배는 해안으로 도착한다. 황제는 손님들에게 칙사 대접을 하며 이야기를 나눈다. 손님들은 아름다운 도시 레데네츠, 수정 집에 사는 다람쥐, 33 명의 바다 전사와 강력한 왕자 귀돈에 대해 이야기하고 있다. 살탄은 그 인상적인 마법의 도시를 방문하고 싶게 된다. 걱정스런 직녀와 요리사는 가지 말라고 황제를 설득하는데, 땅벌이 된 귀돈은 각의 눈썹을 짜른다. 바바리하는 가장 놀라운 기적인 아름다은 공주에 대해 왕에게 이야기하는데, 땅벌이 바바리하를 논에 찌르고 모두가 혼란에 빠진다.
제3막
귀돈은 바바리하의 말을 떠올리며 아름다운 공주에 대해 생각한다. 그는 백조에게 도와달라고 한다. 백조는 그 아름다운 소녀가 바로 그녀라고 대답한다. 여왕은 그들의 결합을 축복한다.
살탄의 배가 부얀 섬으로 도착하고 시종들과 함께 해변으로 내려온다. 궁전에서 귀돈은 그를 맞이하고 옆에 앉힌다. 손님들의 앞에서 놀라운 마법의 다람쥐, 체르노모르 삼촌과 바다의 전사들, 눈부신 공주 백조가 나타난다. 흥분한 살탄은 여왕을 모셔와달라고 한다. 밀리트리사가 나온다. 살탄은 귀돈이 그의 아들이라는 것을 깨닫는다. 요리사와 직녀는 황제에게 용서를 구한다. 바바리하는 두려움에 빠져 도망친다. 행복한 살탄은 음모자들을 용서해준다.