得到辽镇兵马入关援剿的消息,孔部叛军立刻表示要与朝廷讲抚,为此,叛军还停止了对莱州城的炮击,籍此再一次迷惑了明廷。
七月初五,明廷宣抚官抵达莱州,孔有德亲自跪迎,并请求与莱州知府朱万年及继徐从治之后出任登莱巡抚的谢琏面谈撤军事宜,一切似乎都在好转。
七月六日,朱万年和谢琏出莱州城安抚叛军,孔有德等人一把鼻涕一把眼泪的忏悔自己的行为,并宣称七月八日就撤回登州;七月七日,朱万年等又一次出城宣抚,孔有德等人盛情款待,双方谈笑甚欢,朱万年因此失去了警惕,回城后便建议谢琏和杨御蕃第二天随自己一起出城去抚贼。
谢琏接受了朱万年的建议,但杨御蕃却坚决不同意出城讲抚,最终,第二天,只有谢琏随着朱万年一起出城与叛军谈判;然而,就在谢琏和朱万年再度进入叛军营地后,叛军突然返回,扣押了朱谢二人,并威逼朱万年开城投降。
朱万年假装顺从,骗孔有德等人说:“你们抓住我也没有欧尼,城内的人是不会轻易投降的,不如派精骑跟随我,到城下与守城者讲和。”
叛军于是派500精骑押着朱万年来到莱州城下胁迫守军投降,但朱万年到了城下后,借机放声大喊:“我已经中计,现在已报必死之决心,尔等赶快发炮,叛军精锐尽在此处,无需顾及与我。”
叛军见自己受骗,便立刻杀死了朱万年,莱州城上的杨御蕃怒火万丈,立刻发炮射击,将来不及逃跑的叛军精骑击杀过半,余者则狼狈不堪的逃回了营地。
逃回营地之后,叛军为了泄愤,便杀害了除谢琏以外的所有前来和谈的莱州官员,并加大了对莱州进攻的力量,正当莱州危急时分,新任山东巡抚朱大典和新任山东巡按谢三宾统兵来援,迫使叛军只能再一次搁下莱州,而优先转身迎战援军。
崇祯五年八月十九日,辽镇援军与叛军主力在沙河镇遭遇,此时,明军前锋祖宽部仅有500骑兵,而对手是孔有德的3000骑兵,敌众我寡,祖宽便准备先行后撤,但通行的靳国臣却认为前锋受挫,后队必然军心不稳,所以,不按祖宽命令后撤,反而领兵主动出击,祖宽见状无可奈何之下,也就将错就错,率全部骑兵冲锋,结果没想到,占据优势力量的叛军一早因为顿兵坚城之下、师老无功而士气沮丧,因此一冲即溃。
前锋大胜强敌的消息传到后队,辽镇兵马士气大振,遂全军压上,叛军见辽镇大举来攻,不敢接战,便仓皇而逃,一路溃逃回了登州城下,而对叛军来说,更加雪上加霜的是,在兵败如山倒的时候,大量叛军士兵主动脱队,因此等退到登州时,总兵力已经不足原有的一半,原本堆积在莱州城下的大量火炮、装备、粮秣也成了明军的缴获。
恼羞成怒的孔有德和李九成等人在狂怒之余,只能杀死谢琏解气,但谢琏之死并不足以抵挡明军的紧逼,所以,为了打退步步紧逼的明军,叛军倾巢而出,于登州境内白马塘以东茂林地带设伏,准备打辽镇兵马一个伏击。
事实上,辽镇前锋祖大弼、靳国成、吴襄等部还真的没有察觉到叛军的伏击圈,所以真的被叛军伏击成功,关键时候,明军监军高起潜孤注一掷,一方面命令前锋往回突围,另一方面又命令全部后军向前压上,就此形成了对叛军的反包围格局。
此后,经过苦战,明军连续冲破叛军6个大阵,斩首叛军13000余,俘虏另外8000人,叛军大溃,不得不退逃回登州城内死守,只是,即便一众叛军首领都在此役中侥幸逃生了,但叛军也已经到了强弩之末,再也没有能力突破明军的包围,继续为祸山东了······