1939年9月,驻河北石家庄及正太铁路沿线的日军独立混成第8旅团派其第31大队千余人,纠集伪警备队500余人,由灵寿进犯晋察冀边区。
八路军120师、晋察冀边区领导研究后认为,这次敌人孤军深入根据地山区腹地,其目的是陈庄。
陈庄位于鲁柏山区的西侧,慈河北岸,是边区商业、交通重地之一,晋察冀边区许多机关、学校和团体都设在陈庄附近。在此之前,敌机曾4次轰炸陈庄。从灵寿到陈庄,除几条绕行的山路以外,主要的道路是经慈峪镇的一条大路。据此,八路军120师、晋察冀边区领导决心利用山区有利地形,布成袋形阵势,诱敌深入,然后集中优势兵力将进犯之敌歼灭。368旅旅长张宗逊被任命为前线指挥,授权指挥各参战部队。
9月26日上午,进犯日军遭到八路军小规模阻击后,便停止了前进。为执行诱敌深入计划,八路军719团多次主动向敌人发起攻击,但日军就是不肯向前迈动一步。下午,日伪军突然全部退回慈峪镇。傍晚,张宗逊得到报告:敌人从慈峪镇开始向灵寿撤退,大炮、辎重已退去很远。不过,日军的“计谋”很快即被八路军侦查人员识破。原来,日军先做出要撤退的假象,以麻痹设伏八路军,然后企图以其第31大队1000余人轻装疾行,通过小路奔袭陈庄,消灭八路军后方机关及破坏我后方设施。
日军虽然“顺利”进入陈庄,但却发现扑了一个空,当地军民早已转移。入夜后,八路军和原驻陈庄的抗大2分校一部战士,分别从东西两侧不断袭扰敌人,让敌人整夜不得安宁。28日拂晓,日军只得在焚烧房屋后撤退。
按照以往的战斗经验,向根据地奔袭的日军,往往是按原路返回。但张宗逊综合各方面的情况后认为:这次日军是孤军深入,他们既想避免在归路上遭到伏击,又希望可以迅速和慈峪的敌人相呼应,因此会选择大路。张宗逊立即调整部署,派一部分战士紧紧尾随敌人,监视其行踪,一部分部队严密监视慈峪镇的敌人,主力部队则按原计划布置包围圈。但为了万无一失,张宗逊还是命令一支部队前往小路埋伏,这样,不论敌人走大路还是小路,都不会将他们放走。一个小时后,张宗逊接到前沿侦察部队送来的报告说:日军果然在绕了一个大弯后,又向大路窜来。
自以为得计的日军回到大路后不久,就遭到了猛烈阻击。严阵以待的八路军战士们利用有利地形,打退了敌人4次冲锋。日军试着向东、向北突击都没有得逞,又转向南面突围。战斗中,派去埋伏在小路的八路军部队也迅速赶到,把敌人逃窜的路完全封住。
接到求援电报后,灵寿的日军急忙派出300余人,会同留在慈峪的500多人,企图接应被围日军。当他们行至半路时,遭到预先埋伏的八路军719团的阻击,冲锋多次,都无法越雷池一步。
战至28日黄昏,八路军向被围日军发动总攻,迅速将敌人分割成两段。这时出现了一个小插曲———由于当时正值雨季,手榴弹大部分受潮,十之八九不能发火,八路军攻进敌占村内的部队只得退出来补充手榴弹。
29日7时30分,被围日军再次“忽发奇想”,为了突围,突然全体向陡峭的鲁柏山上爬去。但他们爬在山崖上,既无掩护,又无依托,成了八路军的活靶子,爬到山顶时,活着的只剩下二三百人了。
残存的敌人满以为翻过鲁柏山就可以摆脱八路军的重围,但翻过山后,却发现八路军一个团早已在山后设好了防御工事。敌人几次突围,都被打退。不久,八路军各部队迅速赶到,将敌人重新包围在鲁柏山西端及附近山沟里。
敌人见突围无望,便通过电台呼叫敌机。敌机虽然前来助战,但发现八路军和日军的阵地犬牙交错,根本无法扫射轰炸,于是用降落伞投下几大包弹药和饼干,企图给被围敌人“延命”,结果大部分落到了八路军的阵地上。
29日黄昏,张宗逊指挥部队对敌人发起总攻。敌人大部就地被歼,十几个漏网的日军好容易突出重围,却发现外面还有等待他们的民兵和游击队。
30日上午7时,陈庄歼灭战胜利结束,千余名日军无一漏网。前来增援的日军得知进犯陈庄的部队已被全歼,只好载着大批尸体仓皇退回灵寿。