從前,在一個城鎮裡住著兩個木匠。他們兩家的房子緊挨著,而且各有一個兒子。兩個小傢伙也整天在一起玩耍,因此他們的名字也跟飯桌上緊挨著的餐具一樣,一個叫小刀,一個叫小叉。他們長大後也不想離開對方。因為他倆一個膽大,一個膽小,因此一個當了士兵,一個學了木工。士兵服兵役的時間到了,但他們倆誰也不想離開誰,於是他們倆一起離開了家,外出遊蕩,最後來到了一個城市裡。木匠在一個師傅那裡幫工,而士兵也想跟木匠待在一起,於是他做了那位師傅的僕人,這樣他們就不用分開了。可是因為士兵根本無心工作,整天遊手好閒,所以沒過多久就被師傅趕出了家門。而勤快的木匠出於對朋友的忠誠,不忍心讓他一個人走,於是也向師傅請辭,跟他一起離開了。就這樣,他們的生活總是不斷這樣重複:即便是找到了工作,也總是因為士兵的懶惰,過不了多久就會被人打發走;而木匠也不想離開士兵一個人繼續待下去,於是只得跟他一起上路。
有一天,他們來到一個大城市裡,因為士兵懶得不想工作,晚上就被辭退了,兩個人在當天晚上就被趕了出來。後來他們順著路來到了一片大森林前,膽小的木匠說:「我不進去,裡面有跳來跳去的女巫和魔鬼。」而士兵則說:「這算什麼!我才不害怕呢!」說完,他走了進去。因為不想跟士兵分開,膽小的木匠也只好跟著走了進去。沒走多久,他們就迷路了,在黑暗的樹叢中轉來轉去,最後看到了一道光線。他們順著光線的方向來到了一座漂亮的宮殿裡。那裡燈火通明,門外躺著一條黑色的狗,旁邊的池塘裡遊著一隻紅色的天鵝。可是他們從門口一直來到廚房裡,卻連一個人影也沒看見,只有一隻灰白色的貓正在廚房的灶臺旁做飯。他們繼續往裡走,發現裡面有很多華麗的房間,但所有房間裡都空無一人。其中有一間房子裡擺著一張桌子,桌子上擺滿了飯菜。因為他們倆實在太餓了,就坐到桌子旁邊,開始大吃大喝起來。吃完後,士兵說:「吃飽了就去睡吧。」於是他們開啟一個房間,看到裡面放著兩張精緻華麗的床。他們躺到床上,剛要睡覺,膽小的木匠突然想起來,他還沒有做過禱告,於是他從床上爬了起來。這時,他看到牆上有一個櫃子,他走過去把櫃子開啟,發現裡面有一張耶穌受難像,旁邊還有兩本禱告書。於是他把士兵叫起來,一起跪下來做完了祈禱,然後才安安穩穩地睡著了。第二天一早,士兵感覺自己被人狠狠地踹了一腳。「你踹我幹什麼?」他朝木匠大吼。而木匠也被踹了一腳,說:「你踹我幹什麼?我可沒踹你!」士兵聽了,說:「這肯定是讓我們起床的訊號。」而當他們從房間裡出來時,桌子上已經擺好了做好的早餐。膽小的木匠說:「我們在吃之前,得先找找做飯的人在哪裡。」「對,」士兵說,「我也這樣以為,這飯應該是那隻貓做完以後端上來的,這真讓我失去了吃飯的興趣。」
之後他們又從下到上轉遍了整個宮殿,還是沒發現一個人影,最後士兵說:「我們也去地窖看看吧。」他們走下樓梯,發現第一個地窖門前坐著一個老太太。他們對老太太說:「你好,是你給我們做的飯嗎?」「是的,孩子們,合你們的胃口嗎?」接著,他們來到第二個地下室,看到門前坐著一個十四歲的小夥子,他們跟小夥子打招呼,但他卻沒有搭理他們。他們又來到第三個地下室門前,那裡坐著一個十二歲的小姑娘,也對他們的問候置之不理。他們正要回去,卻看到小姑娘已經從座位上站了起來,他們問:「你想跟我們一起上去嗎?」小姑娘說:「紅天鵝還在上面的池塘裡嗎?」「是的,我們進門時看到過它。」「太可惜了,那我不能跟你們上去。」第二個地窖門前的小夥子也站起來了,他們也問他:「你想跟我們一起上去嗎?」小夥子卻說:「黑狗還在院子裡嗎?」「是的,我們進門時看見它了。」「太可惜了,那我不能跟你們上去。」他們來到老太太身邊時,老太太也站了起來。「老婆婆,」他們說,「你想跟我們一起上去嗎?」「灰白貓還在上面的廚房裡嗎?」「是的,它坐在爐灶邊做飯呢。」「太可惜了,在你們把紅天鵝、黑狗和灰白貓殺死之前,我們是沒辦法走出地下室的。」
當兩個年輕人來到上面的廚房裡時,他們想摸一摸那隻貓,而貓卻瞪著火紅的眼睛,惡狠狠地盯著他們。現在只剩下一個他們沒有進去過的小屋了。他們走過去把門開啟,發現裡面空蕩蕩的,只有牆上掛著的一把弓箭、一把劍和一把鐵鉗。弓箭上寫著一串字:殺死紅天鵝;劍上寫著:砍下黑狗的腦袋;鐵鉗上寫著:擰下灰白貓的頭。「唉,」膽小的木匠說,「我們還是離開這兒吧。」士兵卻說:「不,我們去找那些動物。」於是他們拿起牆上的武器來到廚房裡,這時,天鵝、狗和貓三個傢伙正待在一起,像是已經盤算好了什麼邪惡的陰謀。膽小的木匠看到以後,掉頭就跑。士兵好說歹說,他才答應先吃點兒東西再走。吃完飯以後,木匠說:「我在一個房間裡見過鎧甲,我想先穿上一件。」可他來到房間裡時卻打算逃走,於是說:「我們最好從窗戶爬出去逃走,那三隻動物正惡狠狠地盯著我們呢!」他走到窗戶邊,卻發現窗子上裝了鐵柵欄。這下他沒有別的辦法了,只得走到鎧甲旁邊,想找一件穿上,但鎧甲都太重了。於是士兵說:「嘿,我們就這樣出去吧。」「好吧,」木匠說,「要是我們也有三個人就好了。」他的話音剛落,一隻白鴿拍打著翅膀飛到了窗臺上。士兵走過去開啟窗戶,小白鴿一進房間,就變成了一個英俊的青年,站在他們面前說:「我會和你們在一起,幫助你們的。」說罷就要去拿弓箭。而膽小的木匠卻說,最好是由他來用弓箭,因為他擅長射擊,而且這樣他就可以想站在哪兒就站哪兒,不用靠近那些動物了。於是小夥子把弓箭給了他,自己拿起了劍。
他們三個一起來到廚房裡,三隻動物還待在一起。小夥子砍掉了黑狗的腦袋,士兵用鉗子擰下了灰白貓的頭,膽小的木匠則站在門後射死了紅天鵝。三隻動物剛剛倒下,老太婆和她的兩個孩子便大叫著從地下室裡跑了上來:「你們把我們最親愛的朋友殺死了,你們這些兇手。」他們邊喊邊衝過來,想把他們三個年輕人殺死。然後三個年輕人反而把他們制服了,用武器要了他們的命。他們剛倒下,一陣奇怪的喃喃低語聲便從四面八方傳來。膽小的木匠說:「咱們把他們三個埋了吧,他們應該是基督徒。」然後三個人把三具屍體抬到院子裡,挖了三個墳墓,把他們埋了進去。在他們幹活的時候,宮殿裡嘀嘀咕咕的聲音越來越大。等他們忙完了,已經能聽到宮殿裡傳來正常的說話聲了。一個大叫:「他們在哪兒?他們在哪兒?」因為這時英俊的青年已經不見了,他們兩人非常害怕,便趕緊逃走了。但沒跑多遠,士兵就說:「嘿,我們不應該跑,我們得回去看看那究竟是些什麼東西。」「不,」木匠說,「我可不想再跟那些被施了巫術的鬼東西打交道,我要去城裡尋找正當的生計。」但士兵一直對他糾纏不休,最後木匠只得同意一起回去了。
他們再次來到宮殿門口時,發現這裡的一切都充滿了生機,馬兒在院子裡蹦跳,僕人們跑來跑去。他們自稱是兩名窮工匠,想來討點兒吃的。其中一個僕人說:「儘管進來,今天所有來客都會受到熱情的招待。」說完,就把他們帶進了一個漂亮的房間裡,給他們端來了飯菜和葡萄酒。吃完後,有人問他們有沒有看見從城堡裡跑出去兩位年輕人。「沒有。」他們回答說。這時,有人發現了他們手上的血,便問他們血是從哪兒來的。士兵回答說:「我把手指割破了。」僕人跑去向主人報告了此事,他親自走了過來。而他不是別人,正是那位曾幫助過他們的英俊青年。看到他們兩個,他驚訝地說:「正是他們兩人解除了城堡的魔咒。」然後熱情地招待了他們,並給他們講述了事情的緣由:「城堡裡曾經有一個女管家和她的兩個孩子,她是一名神秘的女巫。有一天,因為她被主人教訓了一頓,便一氣之下對所有的東西施了魔法,把城堡裡有生命的東西都變成了石塊。但是她的魔法唯獨對三個邪惡的僕人沒有辦法,因為他們也懂巫術,所以她只得把他們變成了動物,讓他們在城堡裡繼續幹活。因為她也害怕那三隻動物,所以只好帶著她的孩子逃到了地下室裡躲著。她的魔力對我也有限度,只能把我變成一隻小白鴿,整日在城堡外飛翔。等你們來到城堡以後,她讓你們除掉那三隻動物,好讓自己得到解救,作為回報,她也會把你們殺死。還好,上帝仁慈,城堡的魔咒被解除了,石頭們也在一瞬間恢復了生機。邪惡的老巫婆和她的兩個孩子被殺死後,你們聽到的喃喃低語聲就是那些被解咒的人們發出的聲音。」說完,他把士兵和木匠帶到了城堡主人的面前。城堡主人有兩個漂亮的女兒,他把兩個女兒許配給了士兵和木匠。從此,他們像高貴的騎士一樣,快樂地生活了一輩子。