Ngày xưa, có một bà goá nghèo chỉ có một cậu con trai. Bên hông cậu luôn đeo một cái vỏ gươm nhỏ, cậu lớn tới đâu thì vỏ gươm lớn theo tới đó. Còn thanh gươm thì cậu tìm thấy cắm dưới đất ngoài vườn, ngày nào cũng nhổ lên ướm thử vào vỏ. Một buổi sáng, nó trượt vào vỏ ngọt xớt. Cậu mừng quá, nhưng quyết không kể với ai, nhất là với mẹ, vì mẹ cậu chẳng giữ được chuyện gì.
Thấy mặt cậu sáng rỡ, mẹ hỏi có chuyện gì. Cậu đáp: “Đêm qua con mơ một giấc mơ đẹp lắm, nhưng chừng nào nó chưa thành thật, con không kể cho ai hết.” Mẹ giận, đánh đòn cậu, mà vẫn chẳng moi được bí mật. Cậu chạy ra vườn, quỳ bên thanh gươm mà khóc. Nhà vua đi xe ngang qua, nghe tiếng khóc thì cho gọi cậu, rồi xin nhận cậu làm con nuôi. Bà mẹ mừng rỡ bằng lòng. Cậu tra thanh gươm vào vỏ và lên xe theo vua.
Trên đường, vua hỏi giấc mơ ấy là gì, cậu lễ phép thưa: “Cả bệ hạ con cũng không kể được.” Về cung, ba nàng công chúa thay nhau nài: “Cậu sẽ kể cho tôi.” Cậu lắc đầu: “Chưa thành thật thì tôi không kể, ai cứ hỏi mãi tôi sẽ trả đũa.” Vua thương cậu, nhưng không muốn giữ bên mình đứa trẻ không vâng lời, bèn cho cậu xuống ở với người hầu. Họ đối xử tử tế, và cậu sống vui vẻ ở đó tới năm mười bảy tuổi.
Một hôm, nàng công chúa út sang khu người hầu, nhận ra người bạn ngày bé nay là chàng trai tuấn tú. Nàng bảo: “Kể bí mật đi, tôi sẽ lấy chàng.” Chàng chỉ đẩy nàng ra như lời đã hứa. Nàng chạy về mách, vua cha nổi giận, sai đem chàng ra xử tội trước dân chúng. Đúng lúc ấy thanh gươm kêu leng keng, một cỗ xe vàng cắm cờ trắng phi tới. Vua nước Hung bước xuống xin tha cho chàng: “Ta có cô con gái đẹp như sao Mai, thế nào nó cũng kể cho con ta.” Vua kia đành gật đầu.
Về tới Buda, công chúa vừa thấy chàng đã nói: “Con chỉ lấy chàng thôi.” Một tuần sau, nàng mặc áo đẹp nhất sang hỏi bí mật. Chàng đáp: “Nàng ơi, đừng hỏi.” Nàng cứ nài, chàng quát lên và đẩy nàng ra cửa. Vua giận, sai xây một cái tháp hẹp, nhốt chàng vào, không cho ăn uống. Nhưng công chúa thương chàng, lén nhờ bác thợ khoét một lỗ nhỏ, sáng nào cũng đưa bánh qua đó. Người vua sai leo thang nhìn vào về tâu: “Anh ta vẫn béo tốt hồng hào.” Vua lẩm bẩm: “Chắc có phép lạ gì đây.”
Rồi vua Thổ gửi sang ba cây gậy giống hệt nhau, đòi nói cây nào cắt từ gốc, từ giữa, từ ngọn, không thì đem quân sang đánh. Chàng dặn công chúa: “Thả gậy vào nước ấm. Cây chìm là gốc, cây lơ lửng là giữa, cây nổi là ngọn.” Năm sau, vua Thổ gửi ba chú ngựa non, hỏi con nào sinh buổi sáng, buổi trưa, buổi tối. Vua cho đưa chàng ra khỏi tháp. Chàng bảo: “Con ăn yến mạch sinh buổi sáng, con ăn lúa mì sinh buổi trưa, con ăn lúa mạch sinh buổi tối.” Lần nào cũng đúng, và không có chiến tranh.
Mụ phù thuỷ, dì của vua Thổ, bảo: “Người giải đố là con một bà goá, mai này sẽ làm vua nước Hung. Phải bắt nó sang đây.” Chàng bèn tìm hai anh em sinh đôi, vẽ cho mình cái mặt nạ giống hệt họ. Ba chàng trai sang cung vua Thổ, cùng cúi chào, cùng nói, cùng ngồi như một người. Đêm ấy, mụ phù thuỷ lén cắt tay áo chàng làm dấu. Sáng ra chàng cắt tay áo hai bạn y như thế. Vua Thổ chịu thua, cho cả ba về.
Lần sau, vua Thổ đòi chàng sang một mình. Công chúa khóc, chàng an ủi: “Đừng khóc, mọi việc sẽ ổn thôi.” Tới cung vua Thổ, lính ùa ra chặn, thanh gươm vụt khỏi vỏ quật ngã cả bọn. Đêm ấy mụ phù thuỷ lẻn vào trộm gươm, bị nó gõ gãy cái mũi sắt. Sáng ra cả đạo quân kéo tới cũng bị đánh tan tác, còn chàng không sứt một vết xước. Ở Buda, công chúa sốt ruột dẫn quân đi đón, vừa ra khỏi thành đã gặp chàng trở về. Vua nước Hung gả công chúa và nhường ngôi cho chàng. Nhưng chàng xin về thăm mẹ trước. Bà goá thấy đoàn quân dừng trước túp lều thì sợ hết hồn. Chàng hôn tay bà và nói: “Mẹ ơi, giờ mẹ được nghe bí mật rồi. Con mơ thấy mình sẽ làm vua nước Hung, và giấc mơ đã thành thật. Hồi bé nói ra thì chẳng có ngày hôm nay.”