Ngày xưa, một tối mùa đông, có ba chị em gái ngồi bên khung cửi trò chuyện. Cô cả nói: “Nếu được làm hoàng hậu, ta sẽ nấu một bữa tiệc cho cả thiên hạ.” Cô thứ hai nói: “Ta sẽ dệt vải cho cả thiên hạ.” Cô út nhỏ nhẹ: “Còn em, em sẽ sinh cho nhà vua một người con trai anh hùng.” Đúng lúc ấy, vua Saltan đứng ngoài cửa sổ nghe hết. Nhà vua bước vào, chọn cô út làm hoàng hậu. Hai cô chị được vào cung làm đầu bếp và thợ dệt, trong lòng ghen tức vô cùng.
Ít lâu sau, vua Saltan phải ra biên cương đánh giặc. Trong khi vua vắng nhà, hoàng hậu sinh được một cậu con trai khôi ngô. Hoàng hậu vội sai người đưa thư báo tin mừng. Nhưng hai cô chị cùng bà mối Babarikha xảo quyệt đã chặn sứ giả, đánh tráo lá thư, viết rằng hoàng hậu sinh ra một con vật lạ chẳng giống ai. Vua buồn lắm, nhưng vẫn viết thư về dặn chờ vua trở về. Ba kẻ độc ác lại đánh tráo lần nữa, viết lệnh giả: phải bỏ hoàng hậu và đứa trẻ vào thùng gỗ, thả ra biển.
Thế là hoàng hậu ôm con ngồi trong chiếc thùng gỗ, bị thả xuống biển xanh. Thùng trôi lênh đênh, sóng vỗ, mây bay. Lạ thay, cậu bé trong thùng lớn lên không phải từng ngày mà từng giờ. Một hôm, cậu bé cất tiếng gọi: “Sóng ơi sóng, sóng tự do bao la, xin sóng đưa thùng ta vào bờ!” Sóng biển nghe lời, nhẹ nhàng đẩy chiếc thùng lên một bãi cát. Cậu bé đứng dậy, tì vai đẩy mạnh một cái, đáy thùng bật ra. Hai mẹ con bước ra, đứng trên một hòn đảo vắng, giữa trời xanh biển rộng.
Chàng trai bẻ một cành sồi làm cánh cung, lấy sợi dây thánh giá làm dây cung, vót một que nhỏ làm mũi tên, rồi ra bờ biển tìm cái ăn. Bỗng chàng thấy một con thiên nga trắng đang vùng vẫy giữa sóng, trên đầu một con diều hâu hung tợn sà xuống định quắp. Chàng giương cung bắn. Mũi tên trúng con diều hâu, nó rơi xuống biển, chìm nghỉm. Thiên nga bơi vào bờ, cất tiếng người: “Chàng trai ơi, chàng đã cứu ta. Ta sẽ đền đáp chàng. Đêm nay chàng cứ yên giấc.”
Sáng hôm sau, hai mẹ con thức dậy thì sững sờ. Trên hòn đảo vắng, một thành phố tráng lệ đã mọc lên, tường trắng, mái vàng, tháp nhà thờ lấp lánh. Chuông đổ vang trời, dân chúng ùa ra chào đón, tung hô chàng trai làm vương công. Từ đó, chàng mang tên vương công Gvidon, cai quản thành phố trên đảo Buyan. Nhưng dù sống sung sướng, Gvidon vẫn ngày đêm nhớ người cha chưa từng gặp mặt.
Một hôm, có thuyền buôn ghé đảo. Biết các lái buôn sắp đến vương quốc của vua Saltan, Gvidon buồn rầu ra bờ biển. Thiên nga hiểu lòng chàng, vẩy nước lên người chàng, biến chàng thành một con muỗi nhỏ, bay theo thuyền. Tới cung điện, Gvidon thấy vua cha ngồi trên ngai, buồn bã, hai bà dì và bà Babarikha ngồi bên cạnh. Các lái buôn kể về thành phố kỳ diệu trên đảo Buyan. Vua muốn đi xem, nhưng ba kẻ kia vội gạt đi. Gvidon tức lắm, bay vù tới vo ve quanh mũi các bà dì, khiến họ hắt xì liên hồi.
Mỗi lần thuyền buôn ghé đảo, Gvidon lại xin thiên nga một điều kỳ lạ, cho cha nghe mà muốn đến xem. Nàng tặng chàng một con sóc nhỏ, vừa nhảy múa ca hát, vừa cắn những hạt dẻ vỏ vàng, nhân ngọc lục bảo. Rồi nàng gọi ba mươi ba chàng hiệp sĩ áo giáp sáng ngời từ dưới biển lên canh giữ thành. Lần nào Gvidon cũng hoá thành con ruồi, con ong theo thuyền về nghe ngóng, và lần nào các bà dì cũng tìm cách ngăn vua đi.
Một hôm, Gvidon tâm sự với thiên nga: “Ta nghe nói có một nàng công chúa đẹp tuyệt trần, ban ngày ánh sáng của nàng làm mờ cả mặt trời, ban đêm soi sáng cả mặt đất, trên tóc có vầng trăng non, trên trán có ngôi sao. Ta muốn cưới nàng.” Thiên nga khẽ đáp: “Nàng công chúa ấy chính là ta.” Rồi thiên nga vỗ cánh, hoá thành một nàng công chúa xinh đẹp, trên tóc có vầng trăng, trên trán có ngôi sao. Gvidon dẫn nàng về ra mắt mẹ, và đám cưới được tổ chức linh đình.
Lần này, khi nghe lái buôn kể về vương công Gvidon cùng nàng công chúa có vầng trăng trên tóc, vua Saltan không nghe ai ngăn nữa, giương buồm ra đảo Buyan. Tiếng đại bác chào mừng vang rền, Gvidon ra đón vua tận bến. Bước vào cung, vua Saltan nhìn thấy hoàng hậu, người vợ năm xưa. Vua bật khóc, ôm vợ, ôm con, ôm cả nàng dâu. Hai bà dì và bà Babarikha xấu hổ cúi gằm mặt, quỳ xuống xin tha. Vua vui quá, tha lỗi cho cả ba, cho họ về nhà. Rồi cả đảo mở tiệc mừng, rượu mật ong chảy tràn, tiếng hát vang tới tận trời xanh.