1938年3月,日军第20师团占领山西省蒲县后,派出4000余人向西开进,企图侵占黄河渡口,进犯陕甘宁边区。14日,日军进占午城,并继续西犯进占大宁。
陈士榘、肖华、杨勇等旅、团首长分析认为,日军主力已深入大宁,其后援也必须跟上,由于部分辎重部队已遭我歼灭,敌一定会再派部队向前线运送物资。于是决定,686团在井沟以西地区设伏,685团则负责阻击大宁东出接应之敌。17日,日军60多辆满载各种物资的汽车,在6卡车步兵的保护下由蒲城向大宁驶来。大宁也派出500多人,携带两门火炮接应,但在遭到685团猛烈袭击后,被迫缩了回去。蒲城西出之敌进入686团伏击圈后,经过将近一小时的激战,丢下200余具尸体和6辆汽车仓皇逃入午城。我686、685两团随即东西夹击,将午城团团包围。
午城位于吕梁山脉中南山区腹地,三条汽车道在此交叉。为了打击西进日军,切断其前后方的联络,使大宁之敌陷入孤立无援的境地,343旅决定攻击午城之敌。当夜,686团3营和685团两个连组成主攻部队,袭入午城,歼灭日军50余人,缴获机枪、步枪60余支。日军的汽车也因在黑暗中乱冲乱撞而大部被毁。
18日,进占临汾的日军第108师团为支援午城作战,在飞机的掩护下,出动600余名步兵、200余名骑兵和一个炮兵中队由蒲县向午城开进。我686团预伏于井沟、张庄公路两侧,汾西孙家庄游击支队预伏于公路南侧的山上,685团则在午城以西阻击大宁日军增援部队。14时许,日军进入伏击区,预伏部队突然从两侧山腰发起冲击,日军在一阵混乱后发起反击。他们在炮火支援下,企图突出重围,均被我军英勇阻击。日军两次派出飞机助战,仍未能解救出被围部队。黄昏时分,龙王庙、井沟一带的500多名日军被消灭,张庄200多敌兵也只有小部逃走。686团一面打扫战场,一面肃清残敌。至19日拂晓,日军大部被歼,午城、井沟战斗结束。
此战,八路军共歼灭日军1000余人,焚毁汽车60余辆,缴获骡马200余匹及大批军用物资。我军伤亡500余人