Mark哥(周润发 饰)和志民(梁家辉 饰)是堂兄弟,两人是越南华侨,现正在香港发展。岂料越战打响,两人都十分担心仍然居住在越南西贡的志民的父亲松叔的安危,为了凑足钱将志民父亲接到香港,两人决定帮当地黑帮走私军火到越南。岂料他们在越南遭到了丧邦的伏击,关键时刻幸亏香港黑帮老大的女友英杰(梅艳芳 饰)及时相救,两人才幸免于难。逃过一劫的三人在西贡渡过了一段快乐时光后,英杰辞别了两人。随后Mark哥和志民将松叔顺利接回了香港。回港后,两人过着安稳平静的生活,只是一直都没有打听到恩人英杰的消息。突然有一天,英杰出现了,重逢令三人都十分开心。只是,一场祸事也在悄悄逼近……
汪家大宅每一位当上大太太的女人都会在子夜12点离奇自杀,新进门的太太秀清嗅到了事情的蹊跷,展开了调查,并发现几位太太可能是被人所害。最终,秀清也当上了汪家大太太,陷入危机,而真凶也浮出水面。然而,真凶却是出乎意料的。 福寿堂棺材铺的汪老太爷去世,汪老爷为父亲赶制棺材,因规矩太阳下山必须收工,而汪老爷决定破例加班,导致招来了不干净的东西。当夜,汪家大宅堆满了花圈和棺材,大钟敲响12下,此时汪家大太太凝香却因为某种原因哭闹着要自寻短见。下人认为是老太爷召唤大太太,而汪老爷则认为是自己破了规矩,招来了煞气。第二天深夜,大家发现大太太自杀身亡,吊死在房间里,钟表正好指向12点。之后,二太太月娥和三太太桂荣相继自杀,时间都是深夜12点,加深了人们对于子夜招魂的信念。然而,四太太秀清因为留过洋见多识广,对于这种超自然说法并不相信。她认为只有亲身经历才能弄清事情的真相,于是决定成为汪家的下一任大太太。