第二次世界大战期间,中国河北挂甲台村的农民马大三(姜文饰)在日本人的统治下过着平静的生活。一个晚上,游击队绑架了日军陆军士兵花屋小三郎(香川照之饰)和翻译董汉臣,把他们捆绑塞入麻袋放在马大三家里,并吩咐马好好看管,几天后的大年三十来带人。马大三和村民战战兢兢地看守两人,花屋小三郎和董汉臣数次发出求救信号,皆被村民化解。半年过去了,村民们担心事情暴露,却又不敢把花屋等放了。
马大三最终被董汉臣说动,把花屋和董送到了日军宪兵队驻地,以换取粮食。日军宪兵军官酒冢猪吉是花屋的同乡。他表面上对马等人客气,但背后指责花屋让皇军蒙耻并殴打了他。宪兵队整队去马的村子里和村民联欢送粮,酒到酣时却乍露杀机。。小花猪的食物被黑乌鸦抢走了,它跟着黑乌鸦一路追去,结果越跑越远。找不到小花猪的小猪坐在地上伤心地哭起来。小黄狗问原因,小猪说它想去找小花猪,可是又怕遇上妖怪。小黄狗拍拍胸口,说它不怕妖怪,两个伙伴上路去找小花猪。路上,它们遇到了很多“妖怪”,小黄狗虽不怕,可是没少闹笑话,直到遇到黑熊,它们才明白妈妈告诉它们的所谓“妖怪”,都是自然现象。两个伙伴不仅找到了小花猪,更增长了许多知识。。