明軍主力將進攻平壤的南、西、北三個方向,東面給日軍留出退軍路線。
祖承訓率領的明軍率先突破城南的蘆門,接着含談門、普通門、七星門、牡丹峰也相繼被明軍攻佔,日軍黑田長政曾派黑田二十四將之一的久野重勝前往偵查,被明軍擊斃。
小西行長一看大勢已去,率領殘兵退守城北一隅風月樓。
入夜,日軍自東南方向突破,渡過大同江向漢城退卻。
沿途早有李如鬆部署李寧和查大受伏兵等候,一陣掩殺,擊斃數百日軍。
明軍配有佛朗機炮、虎蹲炮,滅虜炮...等等火炮數百門,在距城5裡許,諸炮一時齊發,聲如天動,俄而花光燭天,倭銃之聲雖四面俱發,而聲聲各聞,明軍之炮如天崩地裂,犯之無不焦爛。
隨後李如鬆收復平壤、開城,並且進攻漢城,是役,明軍付出陣亡790人的代價,給予日軍兩千千餘人的損失。
由李如鬆率領的明軍在平壤大捷後,爲了快速緩解後勤危機,欲乘勝追擊日軍速戰速決,先遣副總兵查大受與朝鮮將領高彥伯領騎兵數百偵查開城至王京之間的道路。
正月二十五偵查先鋒在碧蹄館(位於首爾西北部的高陽市德陽區碧蹄洞,是前往王京的必經之路)南方的礪石嶺遇到幕府軍高野信義、伊藤懷家的偵察隊數百名,一時之間,雙方前鋒交戰,幕府軍不敵後撤,查大受乘勝追擊,並派人將戰況傳給李如鬆。
二十六日提督李如鬆得報後,以爲日軍如當地土民所說棄京城撤退,遂率領本部兵馬騎兵四千人從開城疾馳引援。
孰料日軍立花宗茂率先於其他日軍,獨自領三千兩百名軍兵正在礪石嶺埋伏,部將森下釣雲偵查到明軍查大受所部,小放幾發鐵炮後回報,便從清晨7時傾開始,起先僅以部將十時連久、天野貞成率七百人爲第一陣擺旗示弱引誘查大受來攻,然而查大受所率領的五百人的突擊速度很快,十時連久的先遣部隊很快被擊潰並損失了一百三十人,被迫後撤,查大受繼續追擊,但遭到了小野鎮幸和米多比鎮的優勢部隊的阻擊,而後續的祖承訓,李寧,孫守廉等人相繼投入戰鬥,此時明軍人數增加到三千人。
立花宗茂從小丸山迂迴明軍的右翼,以十時連久負責吸引明軍的注意力。然而立花宗茂的速度過慢,導致十時連久在明軍的直接衝擊下力戰不支,不久中流矢而亡,(可能爲李如梅所射之箭)。
在十時連久被擊斃後立花宗茂與其弟高橋統增率本隊三千兵從左方奇襲明軍右翼,一時間給予明軍造成混亂,查大受因此往北邊的碧蹄館退軍,此時宗茂率親兵八百追擊,但部將池邊永晟陣亡,而明軍也很快重整隊形開始反擊日軍,立花宗茂的奇襲效果喪失,而隨後的戰鬥也讓立花軍感到吃力,連立花宗茂的鎧甲上也插滿箭簇,狼狽不堪。最後立花宗茂退到小丸山,碧蹄館的前哨戰鬥結束。
此前哨戰歷經5小時,日軍方面由趕來接應的黑田長政率五千人接替了立花宗茂繼續指揮戰鬥,此時近中午時分,突然兩萬名幕府軍先鋒軍如小早川隆景、毛利元康、小早川秀包、吉川廣家等部趕來佔領望客硯,後面還有幕府軍本隊兩萬人進軍。
27日李如鬆率十名親兵趕到戰場,李如鬆得知先鋒已經交戰迅速展開爲鶴翼之陣,於礪石嶺北方的望客硯迎來查大受軍後於碧蹄館重整軍陣,李如鬆馬上得知了明軍的境地,於是採用疑兵之計,反而主動衝擊人數優勢的日軍,幕府軍軍以爲明軍主力已經來了,於是開始商討作戰計劃。
最後,幕府軍採取了小早川隆景的建議,急忙傳令中軍主力急速進軍,命先鋒粟屋景雄三千兵從大路西側配合井上景貞夾擊明軍。
此時日軍的人數已經是明軍的兩倍,而李如鬆也識破了日軍的意圖,並在日軍展開動作時,明軍也開始行動。
在粟屋景雄和井上景貞沒完成合圍前,明軍率先擊潰了粟屋景雄部,並開始追擊。
但是明軍誤入泥灘影響了機動,隨後被日軍反擊,而李如鬆立即下令,讓陷入泥灘的明軍騎兵下馬步戰,粟屋景雄部支持不住,直接撤退。
最後明軍徐徐退出泥灘,而井上景貞見粟屋景雄部撤退後也狼狽後撤。
小早川隆景見計劃失敗,索性將優勢兵力全部投入戰鬥,並親率第六軍團參戰,筑紫廣門和立花宗茂部分成兩路從側翼迂迴明軍,明軍的側翼遭到突擊。
而正面則是小早川隆景壓制,明軍頓時如同被包圍的態勢險象環生,此時李如柏、李寧、查大受、張世爵、方時輝、王問等明將皆各自持刀奮迅作戰,其中部將李有升爲護衛李如鬆與井上景貞接戰,井上景貞不敵退走,李有升追擊,不慎中鉤落馬被井上景貞調頭殺死,立花軍中也有安東常久、小串成重兩位旗本武士被明軍擊斃,立花軍損失慘重被迫撤離戰場。
小早川秀包試圖包抄明軍的側翼,但反被明軍分出小分隊擊退,小早川秀包麾下八名家臣身亡,不久小早川隆景投入的吉川廣家、戶川達安、黑田長政的軍勢欲加包圍。
兩軍從午後交戰六個小時至黃昏後明軍終於等到左協大將副總兵楊元率援軍一千人到來,楊元奮勇衝破日軍包圍領軍搶佔如鬆右方陣地,並和李寧的炮營發炮轟擊日軍援護明軍撤退。
幕府軍小早川隆景因明軍援軍的到來方始退軍,而李如鬆則主動斷後,但從日軍軍中突出一個金甲倭將小野成幸直接向李如鬆所在的方向突進,最後被李如梅擊斃,明軍撤退。
之後,幕府軍於2月約2萬兵力轉攻京城西北方的幸州山城,朝鮮城將權慄以少數兵力擊退幕府軍,幕府軍中吉川廣家等負傷。
2月,李如鬆改變策略,於3月初焚燒幕府軍於龍山的糧倉粟數十萬,逼使其撤退。
此戰拖住了幕府軍的大部軍隊,爲明軍突襲龍山糧倉贏得了時間。
19日,日軍因爲缺糧,被逼由漢城撤退。
5月四川參將劉鋌率軍五千趕赴援朝,並被任命爲副總兵。幕府軍撤退至釜山,此後陸戰皆集中在朝鮮南部四道,並以朝鮮勤王軍與倭軍的戰鬥爲主。
幕府軍於6月中旬又攻打朝鮮南部的晉州城,爲第二次晉州城攻略戰,幕府軍前田慶次、黑田長政以下的部將前田義陽、後藤基次以龜甲車破壞城壁,大部幕府軍涌入晉州城而攻陷,城將金千鎰戰死。
至於幕府水軍衆五百餘艘船隻橫掃朝鮮水師,大將李舜臣戰死,隨後明軍調集戰船兩千餘艘,幕府水軍衆不敵,敗走。