丹尼尔•希拉德(罗宾•威廉斯 饰)因与同事产生摩擦而辞掉了配音员的工作。家中可爱的孩子给了他十足的快乐,于是丹尼尔在儿子生日的时候,与孩子们疯狂的玩耍起来。当妻子米兰(莎莉•菲尔德 饰)达看到家中一片狼藉后十分生气。面对不争气的丈夫,米兰达决定与之离婚,因为没有工作,丹尼尔也失去了孩子的抚养权。
丹尼尔对孩子们无比思念,突发奇想乔装成一名老太太——道特菲尔太太应聘成为妻子家中的佣人。不懂家务的丹尼尔闹出了不少的笑话,却无形中为米兰达减轻了负担,孩子们也开始依赖这名“老太太”,“道特菲尔太太”成为了他们家中的重要一员,丹尼尔也因此改变了不少。
但面对米兰达的新男友的恋情,“道特菲尔太太”暗中捣乱。米兰达生日当天,丹尼尔需要以真实身份与“道特菲尔太太”的身份周旋与电视台主管与米兰达之间,使他狼狈不看。匆忙间会否被米兰达识破身份呢?。抗日战争中期,国民党新编22军被日寇重兵围困在陵城。军长梁梦征违心地签署了接受改编投降日军的一纸命令。在自杀前,他关照外甥女儿李兰和312师师长白云森成亲,把心爱的手枪送给了跟随他多年的手枪营营长周浩。军部被倾向改编的副军长毕元奇控制,白师长被软禁。在军官会上,毕元奇拿出军长手令让大家传阅,被白云森扣住,并宣布:军长被毕元奇谋害,手令纯属伪造。他当众击毙了毕元奇,得到了军长的侄子、311师师长梁皖育和手枪营营长周浩的支持,并控制了会场,议定当晚突围。担架队抬着军长的遗体,士兵们杀开一条血路,冲出重围。这时白云森命令放下军长遗体,抬上伤员;周浩极力反对,并发誓要把军长背走。周浩的行动激怒了白云森,他决心公布军长的手令。当梁皖育和李兰知道后,想尽办法也没阻止住。第二天,白云森在军官会上宣布梁梦征是汉奸,会上又炸了锅,311师的军官们不能容忍白云森出尔反尔,把枪口对准了他。312师的军官们为了保卫自己的师长也拔出了枪。两师对阵气氛异常紧张。白云森先发制人,先解下自己的佩枪,吼道:要开枪先冲着我来。命令312师先交枪,然后逼梁皖育和311师都交了枪。他又控制了局面,然后让大家传看手令。311师的马团长抢走手令,并破口大骂白云森。这时白云森以搅乱会场为名,当场枪毙了马团长。手令重新传看,军官们看着手令都不吭声。白云森认为目的已达到。他刚走到一块大石头边,周浩的枪响了。白云森应声倒下。军官们闻声而来,谁也不能靠近。原来周浩已神志失常。为了安抚部队,防止火并,收拾残局,梁皖育命令把周浩就地处决。而李兰由于白云森的死,精神也失常了,亦被梁皖育打死。疲惫不堪的22军,向重庆电告突围成功,重庆复电追悼“为国捐躯”的梁梦征、白云森、毕元奇,并任命梁皖育为军长,晋升中将。。