路易斯(欧文·瓦卡罗OwenVaccaro饰)的父母在一场可怕的事故中双双离他而去,无依无靠的路易斯只得收拾行囊投奔他多年未见的舅舅乔纳森(杰克·布莱克JackBlack饰)。让路易斯没有想到的是,看上去平平无奇的乔纳森,他的真实身份竟然是一位拥有强大法力的魔法师。就这样,路易斯在舅舅那栋到处都发生着超自然现象的屋子里安了家,并且结识了舅舅的好友齐默尔曼夫人(凯特·布兰切特CateBlanchett饰)。屋子里总有一种奇怪的嘀嗒声,乔纳森和齐默尔曼夫人企图找到这种声音的源头却无果,而这一切的始作俑者,是邪恶的黑魔法夫妻艾萨克(凯尔·麦克拉克伦KyleMacLachlan饰)和赛琳娜(芮妮·戈兹贝里ReneeGoldsberry饰)。1955年,十岁的刘易斯·巴纳维尔特(LewisBarnavelt)的父母在一场车祸中丧生后,搬到密歇根州新西庇太(NewZebedee)与叔叔乔纳森(Jonathan)一起生活。他父母留下的只有他们送给他的一个神奇八号球和一张全家福。进入新家后,他遇到了乔纳森的邻居和最好的朋友弗洛伦斯·齐默尔曼。晚上,刘易斯听到墙上有滴答声,感到很困惑。刘易斯开始探索房子,偶然发现乔纳森正在用斧头砸碎墙壁。他害怕了,逃跑了,发现许多家用物品都活了过来。乔纳森承认自己是术士,弗洛伦斯是女巫。这所房子的前主人是一位名叫艾萨克·伊扎德(IsaacIzard)的邪恶术士(乔纳森的前朋友,在二战中受到创伤,成为孤儿)和他同样邪恶的妻子赛琳娜(Selena)。艾萨克和赛琳娜在死前显然在房子的墙壁内藏了一个时钟,乔纳森一直在试图找到时钟并发现它的用途。尽管乔纳森提出警告,刘易斯还是开始自学魔法。在新学校的第一天,刘易斯遇到了塔比·科里根,塔比·科里根在塔比竞选班长期间与他成为了朋友。当塔比赢得选举后,他抛弃了刘易斯。刘易斯的母亲在梦中拜访了他。当他感叹塔比不把他视为朋友时,她建议他使用一本禁书中的咒语来打动塔比。万圣节之夜,刘易斯在墓地施展了死灵咒,意外地从坟墓中召唤出了艾萨克的鬼魂。刘易斯在邻居汉切特夫人家的窗户里看到了艾萨克。他从艾萨克手中“救”了她,并带她穿过街道来到乔纳森的家,但在他找到乔纳森之前,艾萨克在前门与他们对峙。他透露汉切特夫人实际上是赛琳娜,她杀死了汉切特夫人,取代了她的位置,并用她的骨头制作了时钟的钥匙。也是赛琳娜化身刘易斯母亲的形象,说服他召唤艾萨克。艾萨克解释说,他隐藏的时钟的蓝图来自恶魔阿撒兹勒,当艾萨克从战争期间目睹的恐怖幻象中寻求解脱时,恶魔将它们交给了艾萨克。时钟将使时间倒转,使人类从未存在过,并消除他所目睹的恐怖。乔纳森、弗洛伦斯和刘易斯被赶出了房子。三人利用魔法8号球得知锅炉房下方时钟的位置,然后返回。弗洛伦斯击败了守卫房间的蛇,而其他人则追赶艾萨克。时钟将乔纳森变成了一个婴儿,除了他用卡片遮住的脸。刘易斯查阅了魔术八号球,上面写着“说再见”。他意识到他必须摆脱失去父母的痛苦才能掌握自己真正的力量。他把球掉下来,挡住了时钟的齿轮,从而打破了时钟。然后刘易斯用他从时钟引导的魔法攻击了艾萨克和赛琳娜。他们倒下、衰老、解体,只剩下他们的套装和长袍。刘易斯带着更多的信心回到学校,并对塔比和他的朋友们感到愤怒,他神奇地把篮球从他们脸上弹到篮子里,给其他同学留下了深刻的印象。然后,他与一个名叫罗丝·丽塔·波廷格的女孩成为了朋友,她似乎迷恋着刘易斯。最终,乔纳森和弗洛伦斯接走了刘易斯,他们三人现在像普通家庭一样生活。