八月二十日,明军孙传庭部和护龙军统帅龙辰列阵大战。接战良久,矢飞炮鸣,杀伤相当,然护龙军愈战愈勇,孙传庭部渐渐不支,鏖战半日后,孙传庭部大败。与此同时,护龙军大将冉义领一万五千铁骑突袭洪承畴军后方,山海关内的护龙军一同出击,洪承畴苦力支撑局面,然明军之崩溃已成定局。
随后,牛二领游骑军夺取了明军在架山的十二堆储粮。其时,明军粮食被抢夺,退路被截断,因为无粮秣,而气挫势穷。洪承畴担心明军步、骑兵被分割,将步骑数万之众,收缩在山海关外的大营内。
山海关外的明军大营,是洪承畴先前亲自督建,壕沟工事,栅栏砌土,俨然一座简陋城池。此次山海关会战之中,明军最后正是依靠着这个大营来苟延残喘。
当晚,洪承畴见形势严峻,召开会议,共谋对策。他对八路总兵等诸将说:“当各敕厉本部,与之力斗。余身执桴鼓以从事,解围制胜,在此一举矣!”
但是诸将意见不一。
洪承畴又对诸将说:“守亦死,不战亦死,若战或可幸万一,不肖决意孤注,明天望诸君悉力。”
明军面临强敌,又缺乏粮食,多主张“回宣大就食”,以图再战。
于是,洪承畴放弃的计划,决定分兵两路,半夜突围。
当夜,明总兵王朴“怯甚”,尚未到约定突围时间,率领部众,已先逃遁,以致明军大乱。唐通、马科、吴三桂、白广恩、李辅明等,马步争驰,自相践踏,弓甲遍野,尸横满地。洪承畴等人突围未成,退守山海关外明军大营,孙传庭领轻骑杀出,侥幸突出重围。冲杀出去的明军,遭到护龙军截击,伤亡惨重。
总兵吴三桂、王朴等准备逃入大明腹地;总兵马科、李辅明等准备奔入山东。当吴三桂、王朴等沿海边逃跑时,护龙军迎头截击。数万明军,东有大海,后有追兵,盔甲遍野,溃不成军,赴海死者,不可胜计。当时正赶上潮水大涨,全军尽没,只有两百余人逃脱。
后仅白广恩、曹变蛟、王廷臣败入山海关外明军大营,与洪承畴及其万余残卒,共守大营。
二十四日,龙辰命设伏于高桥大路。吴三桂、王朴等率残部向宣大逃奔,遭到护龙军追击,败奔,一路丢盔弃甲,损失惨重。吴三桂、王朴恰中护龙军的预算——护龙军大仁部等伏兵四起,阻截前路,追兵蹑后。吴三桂、王朴和众士卒,手足无措,伏兵合力进击,各路溃窜。吴三桂、王朴,仅以身免,逃回宣大。其后,孙传庭也带着十余骑残兵来到宣大。后王朴被朱由检下狱斩杀,孙传庭被下锦衣卫诏狱。
山海关之战,历时十天,明军大败,护龙军获胜,明军被杀五万三千七百七十七人,损失马匹八千九百匹匹、驼九十八峰、甲胄一万三千六百一十二副。另外“赴海死者,以数万计,浮尸水面,如乘潮雁鹜,与波上下”。明军投海死者及丢弃马匹、甲胄数以万计。
尔后,龙辰命护龙军大规模进兵山海关外明军大营,必欲破赢,擒洪总督。大营内,缺粮短薪:“米粮有限,主客聚食,三月之后,恐不可支。”
明朝兵部认为:山海关外明军大营内,两万士卒,坚守时间,不能久待——“非饿死,则杀死”。
大营被围,断绝外援,情状危急,明方奏报:“内无粮草,外无援兵,封疆诚岌岌危矣!”