周申玉(沈殿霞飾)與關德興(董驃飾)育有一子關仁堅(張學友飾)。周申玉不甘被鄰居看扁,丈夫兒子都需要常幫助她在鄰居面前出風頭。其實關德興多年來一直想念著往日的舊情人李消云(鄧碧云飾),當年因為母親反對,他才與阿玉結婚。李消云的丈夫早年逝世,她與兩個美麗的女兒文文(張曼玉飾)與波波(何美婷飾)一起生活。在電視臺工作的關仁堅也認識文文,兩人互生好感。但他們想都沒有想到自己的父母之間會有如此一番的情感糾紛,而且這時候關德興夫婦與消云重逢了。關德興知道了兒子的事,拼命幫忙瞞著妻子與舊情人,可是紙是包不住火的,申玉與消云還是知道了這件事,并且極力反對。關德興想出了各種荒誕的事想要欺騙兩位母親,笑料百出。最終兩代人通過一系列誤會引發的鬧劇達成和解,在兩位母親放下成見后,仁堅與文文的愛情獲得圓滿結局。