从前,有一位国王,他有十二个女儿,而且一个比一个长得漂亮。她们一起睡在一间大厅里,床并排放着。每天晚上,她们上床以后,国王就会锁住大厅的门,插上门闩。可是早上,每当他打开门时,总会看到她们的鞋子因为跳舞都磨破了,而且没人知道到底是怎么回事。于是,国王向全国发出通告:谁能找到她们夜里在哪里跳舞,谁就可以任意选择娶她们中的一位做妻子,并且在国王死后继承王位;但是,如果在报名后的三天三夜内还没有弄清楚的话,就得丢掉性命。不久,一位王子自告奋勇愿意一试。他受到了友好的接待,晚上被安排住在了和公主们的寝室紧挨着的房间里。他把床搭在房间里,他要注意观察公主们去哪里跳舞了。为了防止她们悄悄地溜掉或者从什么地方跑掉,房间的门一直敞开着。可是到了晚上,王子的眼皮却像灌了铅一样,很快就睡着了。第二天早上,当他醒来的时候,发现她们十二个全去跳过舞了,因为她们那些摆在那儿的鞋子的鞋底全都出现了破洞。接下来的第二天和第三天晚上情况仍然是这样,于是,这位王子没有得到丝毫同情之心,脑袋搬了家。
在这之后,又有很多人自愿报名冒险一试,但是都为此丢掉了性命。这时,有一个因受伤而退役的贫穷士兵,正在朝国王所在的城市走去。路上他碰到了一个老妇人,老妇人问他要到哪儿去。“其实我自己也不清楚。”他回答道,接着又打趣说,“我倒是有兴趣去弄明白公主们在哪儿跳破了鞋子,然后尝尝做国王的滋味。”“其实这并不难。”老妇人说,“你一定不要喝晚上送过来的酒,并且要装作睡得很死的样子。”说完就给了他一件斗篷,告诉他,“披上这件斗篷,别人就看不见你了,你就可以悄悄地尾随这十二个公主了。”士兵得到这么好的建议之后,当真下了决心,于是鼓足勇气到国王那里报了名。
和其他人一样,他也受到了殷勤的接待,还被打扮得很体面。到了晚上睡觉的时间,他被带到了大厅前面的房间。他刚想上床时,大公主给他送来了一杯酒,可他事前在下巴下绑了块海绵,此时就把酒倒进了海绵里,一滴都没有喝。然后,士兵躺下来,没过多久,他就装作睡得很熟的样子打起了鼾。十二位公主听到他的鼾声都笑了,大公主说:“他也逃脱不了被砍头的命运了。”然后她们起了床,打开衣柜、箱子、匣子,取出漂亮的衣服来,在镜子前梳妆打扮,跳来跳去,为马上要参加舞会而高兴不已。只有最小的公主说:“我不知道为什么你们这么高兴,可是我心里却总觉得不寻常,咱们要倒霉了!”“你呀,真是个傻瓜!”大公主说,“你老是担惊受怕的,难道你忘了,有多少王子枉费了心机?这个士兵,即使我不给他喝安眠药,他也会睡得像死猪一样,不会醒的。”她们都准备好了以后,先去察看了士兵的情况,而他紧闭双眼,一动不动,她们才相信这下毫无问题了。
这时,大公主走到自己的床边敲了敲床,床立刻沉到地下,露出一个地洞,她们一个接着一个走了进去。将这一切都看在眼里的士兵,没有过多犹豫,披上斗篷,跟在最小的公主身后也走下了地道。走在台阶的中间时,他踩到了她的裙边,把她吓了一跳,她惊叫道:“怎么回事?谁在拽我的裙子?”“别傻了,”大公主说,“你不过是被钉子挂了一下。”这时,她们都已走完了台阶,来到了地下的一条华丽奇异的林荫道上,只见两边树上的叶子全是银子做的,闪闪发光。士兵心想:我要带点儿证据回去呀!于是伸手折下一条树枝,弄得树枝“嘎巴”响了一声。小公主听到又叫起来:“不对劲啊!你们没有听到响声吗?”大公主却说:“那是庆祝的枪声,因为我们的王子就要被救出来了。”这时,她们又来到了另一条林荫道,那儿的树叶全是金子做的。接着又走进第三条林荫道,那儿的树叶全是钻石做的。在这两条林荫道上,士兵也各折了两段树枝留做证据,每折一次,小公主都会被吓一跳,而大公主总是坚持认为那是鸣枪庆祝的声响。公主们继续往前走,来到了一个大湖边。那儿停泊着十二条小船,每条船上都坐着一位英俊的王子。他们在等候十二位公主,每位公主各自走上一条船,而士兵则跟着小公主上了船。这时王子说:“不知道为什么,今天船好沉呀,我必须用尽全身的力气,才能划动前进。”“还能为什么呢?”小公主说,“天气变暖和了,我也觉得热呢。”在湖的对面,矗立着一座灯火辉煌的城堡,里面传来了欢快的音乐声。他们划过去,走进城堡,每位王子都和自己心爱的公主跳起舞来。士兵也跟着跳,却没人能看见。每当有一位公主端起酒杯,举到嘴边要喝酒时,他就会抢先喝掉它。见到这种情况,小公主更害怕了,大公主却老是要她不要声张。她们一直跳到第二天凌晨三点,鞋子全跳破了,才不得不停下来。王子们又划船送她们回去,这一次士兵坐的是大公主的船。到了岸边,她们和自己的王子依依惜别,并答应第二天晚上再来。在上台阶的时候,士兵跑在她们前面,抢先躺到床上。当这十二姊妹拖着疲惫不堪的身子慢慢上来后,士兵已经又开始鼾声大作了,她们听到后说:“对这个人,咱们不用担心。”然后,她们脱掉华丽的服装,把跳破的鞋子放在床前,躺下睡觉了。第二天早上,士兵只字不提晚上所见到的事,而是希望再一次目睹那奇妙的夜晚,于是在第二天和第三天晚上仍旧跟着去了。情况和第一次没什么两样,公主们每次都跳到鞋子破了才罢休。只是在第三次,士兵带回去了一只酒杯当做证据。
到他解开谜底的时候了,士兵把三根树枝和酒杯带在身上,来到国王面前,而那十二个公主则站在门后竖起耳朵,想偷听他究竟要说些什么。当国王问道:“我的十二个女儿夜里是在哪里跳破了她们的鞋子?”他回答道:“和十二位王子在一座地下王宫里。”接着,他向国王讲述了自己所看到的一切,并拿出他带来的三根树枝和酒杯给国王过目。国王听闻立刻叫来他的女儿们,问她们士兵说的是不是真的。她们见秘密已经被揭穿,否认也没有用了,只好全部承认了。随后,国王问士兵,他想选哪一位公主做妻子。士兵说:“我年纪已经不小了,请把大公主许配给我吧。”于是,他们在当天就举行了婚礼,士兵也成为了王位的继承人。但是那些王子们得救的日期却被推迟了,推迟的天数和他们与十二位公主跳舞的夜数相同。