罗历戎在孙连仲的催促下兼程北进,18日晨由定县出发途中,两次接到国民党空军投下的“我们发现共军大批密集部队南来,距你们很近,请第3军紧急做战斗准备”(《文史资料选集》第20集,文史资料出版社,第157页)的信袋。
罗历戎阅后,放弃到望都宿营的计划,改在清风店附近的东南合及南北合等几个村庄宿营,并令部队加紧构筑工事,准备战斗。同时,请求北平行辕派兵接应。国民党空军为掩护第3军北上和迟滞晋察冀野战军行动,自17日至19日,曾出动各型飞机30架次,轰炸扫射行进中的解放军,但未能帮助第3军摆脱困境。19日晚,第3军即被包围。
20日拂晓,晋察冀野战军发起攻击。杨得志、杨成武、耿飚发布命令:北面阻援兵团应“用一切有效手段,求得在敌前进中歼灭其一部,大量杀伤消耗敌人,坚决阻敌南援”。待我南面将第3军4个团歼灭后,“再放敌南来”;“南面各兵团,坚决歼灭北进之敌,集中兵力、火力,发扬三猛战术。对北面不要顾虑,即使北面之敌进到望都,我仍要继续打下去,一直歼灭这股敌人为止。”
由于敌第3军集中在以西南合村为中心的几个村子里,形成了梅花形的防御体系,兵力、火力均较集中,因此,激战一天战果不大。
20日晚,杨得志等人决心先将守敌分割,予以各个歼灭。以第10旅并指挥第11旅之31团夺取南合营;第11旅主力攻击东西同房;第9旅攻击高家佐;第4、第6旅攻击第3军军部和第7师主力据守的西南合。
经21日一天激战,晋察冀野战军备部队攻占了南合营、高家佐、东西同房,巩固了西南合村东北面和西南面突破口,为最后歼灭第3军创造了极有利的条件。
在21日战斗时,国民党军出动飞机10余架次,在解放军阵地和后方的上空低空盘旋扫射轰炸,被解放军的轻重武器击落、击伤各1架,有6名飞行员被俘。此后,飞机就再也不敢低飞了,所投的粮食和弹药也大部分落在解放军阵地上。
22日3时40分,晋察冀野战军集中5个多旅的兵力,在强大炮火掩护下,向退守西南合的罗历戎部发起总攻。
罗历戎久盼援军未到,见大势已去,令副军长杨光钰和副参谋长吴铁铮在军部指挥,自己跑到第7师指挥所与师长李用章组织部队向北突围。冲击多次,均被击退。8时许,罗历戎、李用章等人被俘,其余各部也先后放下武器。
22日11时30分,战斗结束。