日军一路畅通无阻冲出城外,城南不远就是大同江,时值隆冬,十里宽的江面全部冰封,日军先头骑兵部队迅速通过,日军大队人马喜出望外,争先恐后的过江,一时间江面上布满了人群。就在这时,早已隐蔽待命的明军火炮突然开火,江面的冰层被炸开无数条口子,日军乱作一团,使冰层大面积崩塌,成群的日军掉进江水中,被顺流冲到冰面下。侥幸逃上南岸的日军则被埋伏在南岸的明军骑兵部队袭击。惊骇万状的小西行长率轻骑部队一路狂奔,沿途被明军追杀,最后在开城日军的接应下撤回黄海道。
平壤战役的胜利,打掉了侵朝日军的嚣张气焰,平安道、江源道、黄海道、咸镜道、开城的日本驻军纷纷弃城南逃,全线后撤400余里。李如松率军入朝参战仅仅一个多月,便收复失地五百余里,朝鲜三都十八道已收复平壤、开城二都及黄海、平安、京畿、江源、咸境等五道。大军继续向南开进,兵锋直指王京汉城。
明军的一支侦察部队,在汉城郊区迎曙驿与日军北上诱敌部队加藤光泰部遭遇并爆发激战,明军大胜,斩首若干。加藤光泰败退后,立刻报告了汉城日本军总部,随后,日军第六军团主力、第三、第九军团各一部共余人先后赶到战场,他们认为这是明军的大部队,准备将这支明军包围在汉城以北十五公里一座小山丘上的碧蹄馆,一场前哨战迅速演变成为一场大规模的战场遭遇战。
日本第六军团指挥官小早川隆景认为,这是明军总攻的前兆,消灭眼前这支孤军是在明军总攻之前消灭其有生力量的绝佳战机,他计划以绝对优势兵力围歼这支明军,在短时间内迅速结束战斗。被包围是由明军副总兵查大受指挥的3000辽东铁骑,这支精锐部队配备了三眼神铳。碧蹄馆一战,3000辽东铁骑与强于己方的日军激战一昼夜,残酷的战斗持续到二十五日,李如松和副将杨元先后率骑兵共2000前来救援,从日军侧翼发起猛攻,日军经过一昼夜激战,已成强弩之末,误认为明军主力发起总攻,遂撤回王京。
此战,李如松报称明军阵亡二百六十四人,斩获日军首级一百六十七人。而据日本《立花家传》《武将列传》载,日军阵亡“武将”包括:小野成幸、十时连久、池边永晟、安东幸贞、小川成重、安东常久、久野重胜、横山景义、桂五左卫门、内海鬼之丞、伽罗间弥兵卫、手岛狼之助、汤浅新右卫门、吉田太左卫门、波罗间乡左卫门一昼夜交战阵亡日军“武将”高达十五员之多,可见战况之惨烈。小早川隆景战后向丰臣秀吉汇报时声称打退了10万“明军铁骑”的进攻,实际当时明军在朝总兵力不过才4万。
碧蹄馆大战,是中日壬辰战争中明军的一次失利,这一点得到了现代史书的确认,日军感到失去了与明军野战的信心。12万日军面对3万余明军不敢出战,而明军由于兵力有限,无法展开强攻,于是双方在汉城一线展开对峙,战局陷入僵局。
李如松在得知汉城日军的军粮库在龙山大仓后,密令查大受和李如梅率敢死队700勇士深夜奇袭龙山大仓,将十三座大仓,数十万石粮食全部烧毁。军粮一失,日军陷入前所未有的困境。此后,朝鲜瘟疫流行,征发粮食不易,日军被迫与明朝达成停战协议,日军撤出汉城,大部分退到了釜山一带,交还了俘虏的朝鲜王子,李如松开进汉城,收复庆州。至此,除全罗和庆尚二道部分沿海地区为日军所占领外,其余各地全部收复,明军留下一万人驻守朝鲜,其余大部回国。
此役,东征大军在入朝参战的短短四个月的时间里,掠地千里,横扫半岛,收复平壤、开城、王京三都。
李如松回国述职,朝廷论功,加其为太子太保,中军都督府左都督。辽东总兵官一职空缺,廷议再三推举人选,神宗特以中旨用李如松为辽东总兵官,言官争相劝阻,明神宗不听,李如松闻讯,“感帝知,气益奋”。
鞑靼土蛮犯辽东,李如松率轻骑追击捣巢,与数万鞑靼骑兵遭遇,李如松率所部三千余人浴血奋战,阵亡于抚顺浑河一带,终年五十岁,神宗闻讯后“痛悼”,令具衣冠归葬于顺天府宛平县长辛店之西南,并追赠李如松为少保、宁远伯,赐谥号“忠烈”,为其立祠纪念。