高中生夏目贵志从小就拥有能够看到妖怪的能力。有一天,贵志遭到妖怪袭击,妖怪要求他返还自己的名字。在逃跑的途中,他打破了神社中妖怪斑的封印。之后,贵志在外婆玲子仅有的几件遗物中发现了一本友人帐。
玲子和贵志一样可以看到妖怪,并且被周围的人孤立。玲子与遇见的妖怪交手并打败它们,让它们将名字写在纸上制成友人帐。最终,妖怪之间流传起这样的谣言——“友人帐可以使众多妖怪服从命令,号令百妖”。斑试图从夏目手中夺走友人帐,但夏目向斑许下“如果我死了,我会把友人帐交给你”的承诺,作为回报,斑化身猫咪老师,成为了夏目的保镖。就这样,夏目和斑接触到了一群怀着不同目的来接近自己的妖怪,也结识了一群认可他的性格,但观念各异的友人。通过各种事件,他多次与妖怪相遇、分离,了解它们的处境和感受。。在斯基特(亚当·桑德勒 Adam Sandler 饰)小时候,凝聚着父亲心血的旅馆被转卖给了诺丁汉。诺丁汉将旅馆改造成酒店,并承诺斯基特长大后交还给他经营。为了这一承诺,25年后斯基特还在酒店里勤勤恳恳的做着杂役,却听到诺丁汉将新酒店总经理指名给别人的消息。
沮丧的斯基特把自己的遭遇和期望编成睡前故事讲给侄子侄女听,原本天马行空的故事情节竟一一应验在现实中,令斯基特欣喜不已。他决定利用故事达成夺回酒店的期望。但孩子们对他刻意安排的故事内容百般挑剔,迫使现实也朝着意外的走向发展……。