男孩查理出身于贫苦家庭,不但吃不到甜美的糖果,还要和母亲一起供养整个家庭。当地最著名的糖果商威利·旺克公布了一条喜讯,他将选取5名幸运儿参观自己的糖果厂,其中的一人将被授予终生享用旺克巧克力的特权。查理幸运的成为第五位人选,而与此同时,一位名叫亚瑟的陌生人正在蛊惑孩子们,谁能为他偷来糖果,他就会让谁富有起来。
旺克开始带领孩子们畅游神奇的糖果厂,而查理则带上了自己的爷爷乔。面对糖果的诱惑,孩子们接二连三的不见了,最后只剩下查理和爷爷,而心怀不满的旺克告诉祖孙俩,他们未经允许就喝了一种禁止喝的饮料……。在一间教学素质低下的学校里,有一个不成文的传统:学生们凡是遇到了争执,都不能告诉老师家长,只能自己用拳头解决。石头(谢霆锋 饰)是最能打的一个同学,一次帮助富家子Edward(冯德伦 饰)解围,彼此成为朋友,二人也因此得罪了学校里的好战分子。阿凤(容祖儿 饰)一直暗恋既帅气学习有出色的Edward,而Edward认为学生最紧要是学习,会考时间逼近,Edward便义务帮助石头与阿凤补习。由于家境富有,Edward竟然在考试当天被绑架了,石头决心把他救回……。故事开始于一列飞驰的火车之中,精神科医生贝利(乔治·布伦特 George Brent 饰)在火车上结识了名叫茜茜(Olive Blakeney 饰)的老太太,茜茜告诉贝利,自己要去探望她的兄弟尼克(保罗·卢卡斯 Paul Lukas 饰),尼克刚刚娶了一个可爱的妻子艾利达(海蒂·拉玛 Hedy Lamarr 饰)。 健谈善良的茜茜给贝利留下了很深的印象,抵达伦敦后,贝利震惊的得知,茜茜竟然在拜访尼克一家人的时候去世了。之后,贝利见到了尼克和艾利达,这对夫妇诡异的相处方式让他不禁开始怀疑,茜茜的死并非一场意外。贝利决定展开调查,随着调查的深入,尼克疯狂的一面渐渐展现在了他的眼前。。