萬曆朝鮮之役

萬曆朝鮮之役是1592年至1598年（大明萬曆二十年至二十六年；日本文祿元年至慶長三年）間，大明、朝鮮國與日本（豐臣政權）之間爆發的兩次戰爭，也是明朝萬曆三大征之一。明朝為抗倭援朝，先後兩次派遣軍隊進入朝鮮半島，與日軍作戰。朝鮮王朝方面稱壬辰倭亂（韓語：임진왜란）以及丁酉再亂​（韩语）（韓語：정유재란），日本方面稱文禄慶長之役（日语：文禄・慶長の役）。
1591年（壬辰年），日本太閤（卸任关白）丰臣秀吉以「假道入唐」（唐，代指中国）為名義，致函朝鮮國王宣祖李昖，表示欲於次年春借道朝鮮轉進攻明朝之託詞，要求請予協助。在久未獲答覆，豐臣秀吉於1592年突然派兵入侵，致朝鮮節節敗退，並促其轉向宗主國明朝求援。明朝隨後派兵入朝支援。此場戰役禍及朝鮮半島全境，其間曾於1593年議和並休戰，但1597年（丁酉年）再度爆發戰事。後期戰役雙方陷入膠著，最後由於豐臣秀吉的病逝，日軍於1598年从朝鮮全面撤退，這場日本占領朝鮮并以之為跳板進攻明朝的行动最終失敗。
這場為時超過六年，牽動東亞三國的戰爭，名稱繁多：
戰爭發生於中國明朝萬曆年間，雖然有前後兩次軍事衝突，但明朝並未因此而分別命名，而是統稱「朝鮮之役」。是役明軍動員規模可觀，與寧夏、播州二役合稱萬曆三大征。現代中國學者對這場戰爭的稱謂不統一，多使用“萬曆朝鮮之役”、“萬曆朝鮮戰爭”、“抗倭援朝戰爭”等稱呼，或是沿袭朝鮮方面（包括大韓民國及朝鮮民主主義人民共和國）的稱謂，稱之為“壬辰倭亂”或“壬辰之亂”、“壬辰之役”。
朝鮮王朝時稱第一次衝突為壬辰倭亂，第二次衝突為丁酉再亂；現朝鮮大多合稱壬辰祖國戰爭或壬辰衛國戰爭。
日本桃山時代稱唐入り（即「入唐／進出中國」之意）、唐御陣、高麗陣、朝鮮陣；江户幕府、明治時稱朝鮮征伐、征韓；第二次世界大戰後改用日本天皇的年號，将兩次出兵合稱文祿・慶長之役；當代也有部分歷史研究者稱之為朝鮮征伐、朝鮮出兵、朝鮮用兵、日明戰争、太閤西征等。
地域以外的國家地區則稱為「壬辰戰爭」，比如英語的Imjin War，Imjin即朝鮮語的壬辰。
15世纪中叶至16世纪后半叶期间，日本处于各地大名割据的状态中，史称战国时代。在织田信长和丰臣秀吉两位大名的努力下，日本趋于统一。逐渐平定各地大名、并成为“天下人”的丰臣秀吉，表现欲入侵明朝之意。1587年6月，秀吉结束九州之役后，将入侵明朝的构想具体化：先派兵占领朝鲜；自己渡海至明朝，居留宁波；随后占领天竺；再派丰臣秀次占领明朝的首都北京。他计划在这一目标制定之后的第七年（1594年）奉正亲町天皇迁都北京。
丰臣秀吉于天正十八年（1590年）統一日本後，决定着手实施这一计划。朝鮮在宣祖二十三年（1590），以黃允吉為通信正使、金誠一為副使、許筬（朝鲜语：허성）為書狀官，派遣使團攜帶國書交聘日本。丰臣秀吉之後於1591年6月命對馬大名宗義智通告朝鮮國王宣祖李昖，回覆國書表示將於次年春天假道朝鮮進攻明朝，請予協助。秀吉致書朝鮮國王如下：
朝鮮收到國書疑懼不已，正使黃允吉認為日本會侵略，副使金誠一認為不會，朝鮮廷議之後，決定從輕通報宗主國明朝，宣祖派遣金應南為使，前去向明朝禮部通報。但是朝鮮並沒有很認真的加強國防。
日方終在未獲朝鮮答覆下出兵。加上當時朝鮮承平日久，加之國王重文輕武、朝廷党爭激烈，以致八道武備廢弛，全國三百餘郡縣多未設防。
统一日本之后的豐臣秀吉野心极大，意圖征服全世界（當時的亞洲全境）。他遣使往琉球國、呂宋（今菲律賓，时为西班牙-葡萄牙聯邦殖民地）、高砂國（台灣）、暹羅阿瑜陀耶王朝、瀾滄王國（南掌，即寮國）、大越、廣南、占城、莫臥兒帝國（天竺，即印度）、葡属印度（今印度果阿）及葡屬澳門等國家和地區，要求他們俯首稱臣及幫助日本而向明朝宣戰。琉球國王尚寧拒絕豐臣秀吉的要求，並且通報明朝關於日本豐臣秀吉的野心。暹羅向明朝派遣使團，表示計劃派出軍團攻打日本；但兩廣總督蕭彥认为暹罗离日本太远，并不可行。暹羅最终也並沒有派兵。而日本在西屬菲律賓遇到困難，因為殖民者為西班牙帝國，所以不了了之。
天正19年8月23日（1591年）、秀吉稱為「唐入り」（入唐）的征明遠征心意已決、向諸大名發表。宇喜多秀家首先贊成、五大老當中，較具影響力的徳川家康人在關東沒參加開會，其他大老、奉行因怕秀吉生氣，不得虛與委蛇不情願的表示贊成，事情就這樣定了。之後秀家作為秀吉的代理人擔任總大將。12月27日秀吉把關白職位讓給外甥内大臣豐臣秀次，自稱太閤專心準備外征。
秀吉指示築造遠征軍的集結點宿營地名護屋城，命令黑田孝高擔任測量與設計（繩張）、浅野長政擔任工程總負責人(総奉行)、九州的諸大名分担施工的工作（普請）。命令壹岐領主松浦隆信修築前哨基地風本城。
名護屋城的建設預定地是波多氏的領土、傳教士路易斯·弗洛伊斯記錄說是個人手欠缺的荒地(「あらゆる人手を欠いた荒れ地」)。名護屋城完成後，全日本大名的軍隊集結、不管是平野還是山坡都沒有空地了。戰爭期間成為日本政治經濟的中心。
為了攻打朝鮮，豐臣秀吉早在天正19年（1591年／明萬曆19年）開始進行準備，正月時就已經對各大名下達水軍部隊兵員的徵召動員令：
到了同年3月時，亦決定了陸軍部隊兵員的徵召動員令；各國諸大名每萬石應徵召人數各地不同：
天正20年，後改元為文祿元年（1592年／萬曆20年）3月，秀吉自全國動員了三十餘萬兵力，以其中西國部隊為主的15萬8700人編成九個軍團渡海至朝鮮作戰；宇喜多秀家為總大將，石田三成、增田長盛、大谷吉繼等為總奉行。軍團編制如下表所示：
註：表中各軍團長均列該軍團將領第一位；第八軍團駐紮於對馬群島，第九軍團駐紮於壹岐島。
輔以水軍九千二百人、船隻七百艘，如下表所示：
另命東日本大名德川家康、前田利家、上杉景勝、蒲生氏鄉、伊達政宗等將其旗下部隊集結在肥前國名護屋城（位於今佐賀縣唐津市）作為預備隊，兵力計約10萬5千人。
在一切工作準備就緒後，豐臣秀吉以朝鮮拒絕攻明為由，於4月正式開始了對朝鮮的戰爭。4月12日其第一軍團由小西行长率领18,700人先渡海至對馬島待命。4月13日九軍出發之命到達，4月14日侵朝的日軍首先於釜山登陸，爆發釜山鎮戰役，朝鮮守將鄭撥戰死，釜山被日軍攻佔。之後陸續發生東莱城之戰，守將宋象賢戰死，尚州之戰後守將李鎰（朝鲜语：이일）敗走。朝鮮國王宣祖李昖急命左議政金命元為都元帥， 坐鎮王京漢城之內，節制全國兵馬。又增設三道巡邊使，由曾經大破女真人的名將北道兵馬節度使申砬擔任，負責慶尚、全羅和忠清三道防務。申砬會合李鎰於彈琴台。4月28日小西行長率18,700人向忠州和彈琴台進軍。小西行長派大村喜前監防忠州城動態，再與松浦鎮信、宗義智、有馬晴信和五島純玄圍攻申砬與李鎰，發生彈琴台之戰，朝鮮軍全軍覆沒，義州牧使金汝岉、忠州牧使李宗張與申砬戰死。忠州被日軍攻陷，李鎰逃往王京漢城報敗訊，然而日軍攻入稷山後，王京漢城已難以固守，朝鮮国王李昖在柳成龍等朝臣的建議下，放棄都城、出奔平壤。5月2日日軍攻克朝鮮王京漢城，俘虜朝鮮王子。在戰略上，日本軍採用了德川家康的提案，確定了“陸海並進”、“速戰速決”的戰略方針；以水軍保證陸軍的戰略物資供應，陸軍分三路齊頭並進，計畫一舉占領朝鮮，然後將朝鮮八道分別交給各軍團長統治。（參見前揭「日本軍軍團編制」表「規畫佔領區」欄）
面對日軍的大舉侵略，朝鮮各地的有力鄉士自立組織義軍，如慶尚道星州的郭再祐於4月21日組織義兵，屢次令安國寺惠瓊敗戰使其無法順利進入全羅道，甚至在10月10日的第一次晉州城之戰中擊退細川忠興和長谷川秀一的大軍，人稱「天降紅衣將軍」，還有鄭仁弘、孫仁甲、金沔等也令毛利輝元無法順利佔領慶尚道。全羅道光州的金千鎰、全州高敬命、李基魯、洪彥秀父子也於6月1日組織義兵，忠清道公州出身的趙憲、僧人靈圭則於7月3日整頓兵力，聯合抵抗小早川隆景、立花宗茂等日軍第六軍團，其中經歷清洲城之戰、梁丹山之戰、兩次錦山之戰。另外還有京畿道海州的李延馣對抗黑田長政，以上戰事皆阻礙了日軍的進軍。
5月27日，日軍第一、第二、第三軍團追击而至，突破臨津守備攻陷開城，李昖不得不在6月11日離開平壤，继续流亡至中朝邊境的義州，並遣使向宗主国明朝求援。當時朝鮮全國八道僅剩平安道以北，靠近遼東半島的義州一帶尚未為日軍攻佔，李昖認為如果要收復國土，必須要仰賴明朝的支援，因此便派幾批使者去向明朝求救。朝鮮使臣們除向萬曆皇帝遞交正式國書外，又分別遊說了明朝的閣臣、尚書、侍郎、御史、宦官等，甚至表示願內附明朝，力圖促使明朝儘快出兵援朝。6月15日日軍陷平壤。7月，加藤清正率鍋島直茂、相良頼房在海汀倉打敗韓克誠，俘虜了朝鮮王子臨海君與順和君。
加藤清正於7月27日越過豆滿江（中國稱圖們江），進攻滿洲東部發生了兀良哈之戰。侵攻臣屬於明朝的建州女真的和海西女真各部落，加藤清正攻拔女真五營，女真餘營皆遁去。8月，加藤清正再大破女眞酋長蔔占台，斬敵900人，攻破其部（今中國吉林省延邊朝鮮族自治州延吉市附近）。然而在局子街遭到海西女真聯軍包圍追擊讓加藤清正軍隊死傷不少，而加藤清正的軍隊無法抵禦進攻只能突圍。豐臣秀吉得知加藤清正戰果後，寫書狀給加藤清正指示：「今略明地」。然而加藤清正經過局子街之役深知明地難略，於8月22日回信豐臣秀吉以小西行長攻略平安道戰果未定，加上自己孤軍難以深入。於是放棄豐臣秀吉假道建州入侵中國之戰略。令鍋島直茂前往支援小西行長。加藤清正自己率遠征軍返回朝鮮咸鏡道，後來參與1593年6月的第二次晉州城之戰。
此時，對於明朝而言，朝鮮告急實出乎意料；明朝曾經遣使問說，貴國向為東國之強者，為何突然失陷於倭寇。同時也有使節表示，貴國既然求援怎麼不曾提及幾月幾日那道淪陷、發生甚麼戰役、損失多少兵馬、將領有誰戰死、臣子有誰死節等等……讓朝鮮國王與諸臣一時驚懼，擔心明朝懷疑他們與日本同謀，旨在假借向明朝求援引誘明軍進入朝鮮殲滅之。當時也有福建海商，以到朝鮮經商時聽聞的消息，回報朝廷說，朝鮮與日本同謀。國王在得知此消息後，為了讓明朝釋疑，除了反覆派出使臣外，也將日本威脅朝鮮的書信轉呈明廷，以示絕無二心。與此同時，明兵部尚書石星也召見曾出訪朝鮮，見過國王樣貌之人，來辨別朝鮮國王的真假；遼東方面則有畫師秘密畫下國王的相貌以資辨別。
最終，明廷認定：「倭寇之圖朝鮮，意實在中國，而我兵之救朝鮮實所以保中國」，因而答應讓李昖渡過鴨綠江尋求庇護，居住在明境遼東半島的寬奠堡，同時出兵援助朝鮮。在明朝中央反覆蒐集情資與討論之際，遼東已經在6月己亥日先派遣出寬奠堡副總兵都指揮佟養正率領8名飛騎傳信先渡江到義州附近準備，分為5撥，每撥須奔馳百里，遇到緊急軍情，迅速傳遞。恰有日本軍部隊屯住在江沙，發數百名騎兵舉行操演，朝鮮大臣特地請明將前往偵查；明將觀察後認為：「若只如此，天兵一來，可以剿滅。」
6月癸卯，隨著明軍的即將到來，明朝與朝鮮反覆磋商的事宜開始集中在基本的事務上，首要需要解決的就是軍糧問題，因為朝鮮無餉，所以明朝朝廷已經決定由中央直接撥餉給明軍，同時也先賞賜朝鮮國王2萬兩銀兩。只是糧食轉運不便，所以在明軍的立場是希望朝鮮能夠提供。《宣祖實錄》裡在此段時間充滿了國王與大臣之間關於軍糧的討論，本來預估在平壤有4萬餘石，在安州有20餘石，可以供5000人15日食用，不過其後平壤淪陷，糧食盡歸日軍。後說嘉山有5－6百石的糧食，可以供2000士兵使用，卻有說安州連1石糧食都沒有。出現反覆甚至矛盾的記載，可能來自於朝鮮中央當時仍然無法確定各地方的狀況。地方官員很多因為避難都逃亡無蹤，致使中央也无法知道地方的詳情。
6月15日參將戴朝弁與游擊史儒開始率軍渡江，根據《宣祖實錄》紀載一共是有1,029名士兵、馬1,093匹。在之前因為朝鮮使臣已經回報說明軍分為兩梯，首梯由初七日由史儒率領發兵，次梯則是初十日由王守官領兵發兵。明軍將領認為必須等待全軍到達後方可出兵；朝鮮方則基於救國心切的心理，在明軍第一梯一渡江後朝鮮方面隨即催促出兵南下，同時也在軍隊管轄的問題上和明軍將領發生爭議。在丁末日原任參將郭夢徵與游擊王守官率領500軍馬渡江回遼東，隔日17日，兩人又再度率軍渡河回朝鮮，共率領506名士兵與馬匹779匹，副總兵祖承訓也同時率軍到來，有軍隊1,319名馬匹1,529匹。相加之後就可以得知，遼東第一次發兵時共出兵2,348人、馬匹2,622匹，指揮官為副總兵祖承訓，後勤調度則是由駐防在九連城的遼東總兵楊紹勳總理其事。
6月間朝鮮使節李德馨屢次上書明朝遼東巡撫郝杰，並在巡撫帳下日夜痛哭不走，遼東巡撫受其感動，遣副總兵祖承訓率騎兵5,000人渡鴨綠江救援朝鮮，與日軍戰於平壤城。但因天雨馬蹄紛紛潰爛，加上祖承訓不知善用騎兵之利，於7月17日黎明，以游擊史儒、王守官等為先鋒統軍進迫平壤砲城，史儒率領千總馬世龍、張國忠兩官先入城，手斬敵首10級，遭到鳥銃命中而亡。且黑田長政、大友義統、立花宗茂等陸續北上進軍來援小西行長，史儒、祖承訓等軍隊被擊敗而潰散，一日之內敗退過大定江，朝鮮急派兵曹參知沈喜壽往九連城，希望楊紹勳總兵能命令祖承訓暫時留守在朝鮮境內，但其撤退過速，已經渡過鴨綠江。
祖承訓副總兵在其後上呈給楊紹勳總兵的報告裏面，提及了數個問題：
經過朝鮮使臣的反覆申辯，楊紹勳總兵後來接受了朝鮮的解釋，也就是軍情是由朝鮮的節度使提供的，可能偵查有誤，關於射箭一事可能是因為朝鮮兵器落入倭軍手中，或者是因為有朝鮮人遭到俘虜，才受到倭軍指使。
不過朝鮮弓（角弓、複合反曲弓）和日本弓（竹製長弓，跟人差不多高）樣子差異很大，箭術也有分別。應該是有朝鮮人被俘虜之後受日本軍指使。
自從平壤兵敗後，遼東軍就等同是移交了此戰爭的主導權到中央兵部手裡。在其後朝鮮使臣雖然數度拜見楊紹勳，或是其他遊擊、參將等等，請求再派兵進入朝鮮以壯士氣，甚至說出派幾百人聲援都可以；不過，明朝已經另有戰略規劃。根據朝鮮《宣祖實錄》的記載，雙方官員有如下對話：“……此賊非南方砲手不可制，欲調砲手及各樣器械先到於此矣，待南兵一時前進……”，“……今則霖雨頻數，道路泥濘…秋涼後方可發大軍前進剿滅…偌大軍留義州及你國…則你國糧料不敷，你國今且省了糧料，留備大軍之用…發兵救援已有明旨，我天朝無有內外之別，寧有終始之異乎…”。此時明廷和遼東軍已知日軍並非僅朝鮮提供的情報中所稱的數千兵馬，便放棄短期內解決朝鮮動亂的目標，尋求長期作戰的可能。
另一方面，明廷自7月起多次派遣游擊沈惟敬到朝鮮，甚至遠赴平壤與日軍談判，其目的即在於拖延時日以待大軍集結；然而由於情報缺乏、補給不繼，只能梯次陸續增兵。8月，明朝以兵部右侍郎宋應昌經略備倭軍務，並詔天下督撫舉將材；又於10月16日，命李如松總理薊、遼、保定、山東軍務，並充任防海御倭總兵官，其弟李如柏、李如梅為副總兵官，一同開赴朝鮮。明朝从全国范围调集了4万精锐將士。这支军队的主要构成如下：辽东精骑1万；宣府、大同各选精骑8千；蓟镇、保定各选精锐步兵5千及名將沈有容；江浙步兵3千。四川副总兵劉鋌率川军5千，做为后续部队向朝鲜进发。在1592年12月25日， 總兵官李如松從寧夏勝利歸遼後，尚不及休息即率軍43,000餘人越過鴨綠江進入朝鮮。
9月甲子，朝鮮宣祖召見尹根壽與韓應寅討論，沈惟敬只看到平壤的敵軍人少，咸鏡道的敵軍更數倍於平壤，尹根壽轉述說沈游擊表示平壤光是看到的敵軍就有1,000人，其他分駐的人應當更多，尹根壽說偵探回報平壤軍隊只有900人，沈惟敬則說，此偵探所言不實應該斬首，預估需要7萬人才可以攻陷平壤。至於朝鮮全境的日軍人數討論，可見《宣祖實錄》載10月庚寅，宣祖召見多位備邊司官員討論，其中有問說“…賊數幾何？尹斗壽曰：“…賊自言32萬云矣…”，這時尹根壽接著說，賊自己這樣說，如果有8萬人就可以迅速攻陷朝鮮，因為只有5萬人，所以無法迅速戰勝。李恒福回答，“我軍殺死倭軍幾乎有1萬人矣，如果倭軍只剩下4萬人，為何到處都有倭軍呢？…”當時朝鮮並不能確定日軍登陸的數量，這也造成明軍估算出征兵力的困擾。
9月辛未，建州衛的女真人部族首領努爾哈赤在向明朝朝貢馬匹的貿易後，聽說日本軍入侵朝鮮之事，並且得知日軍加藤清正已率軍渡過豆滿江（今稱圖們江）正入侵兀良哈的建州女真與海西女真，於派使臣馬三非來朝鮮說：稱建州衛部下有馬軍三、四萬，步軍四、五萬人，皆精勇慣戰，聽說倭軍入侵朝鮮，因為跟朝鮮唇齒相依，願意出兵「征杀倭奴，报效皇朝」。經過朝鮮國王宣祖與大臣討論後，認為努爾哈赤可能是想趁機聯日本消滅海西女真，因此加以拒絕。
10月庚辰，朝鮮禮曹判書尹根壽等見明朝葛總兵，葛總兵私底下告訴他們說：“這次動員有關內薊州、宣府、大同等處鎮兵及南兵1萬人共7萬人，廣寧、遼東等地鎮兵6萬人共13萬人，……聖旨以為直殺到王京，如果讓倭軍今年逃走，則明年必當再次入侵，當使倭軍片甲不還。”這就是明軍一開始的用兵規劃，希望能集結大軍一次殲滅入侵的日本軍，只是事後才發現計畫與實際有所出入。朝鮮大臣又問糧餉，葛總兵說：“鴨綠江以西車運，以東馬運，並不需要使用貴國的錢糧。使臣又問說，那麼沈游擊的和談之說，如何？如果真的和談，小邦的痛就沒有辦法申張了。葛總兵回答：我不知道朝廷的意思，不過楊總兵說大軍到了平壤，如果倭軍束手哀求請降，那我們也只能接受。如果頑強抵抗，就將倭軍一次殺光，哪裡有不讓你們滿足心願的道理！葛總兵的話就是倭軍不投降的話，一定會讓朝鮮人復仇的意思。”
明軍首波渡江入援人數的朝鮮官方記載，10月壬子，朝鮮的備邊司啟曰：“天兵共計4萬8,005人，將領中軍千把總還沒有算在裡面，一日糧每一名是1升5合，馬匹2萬6,700匹，將領等官之馬不在數內，每一匹日給料豆3升。以此計算，則4萬8,585人的糧食一天是720石，2個月則需要米4萬3,730石；馬一日用豆801石，2個月需要豆4萬860餘石。……目前估計自義州至平壤，留穀之數大約有5萬1,488石，豆3萬3,127石……，抽西補東軍糧可以支應50餘日，馬豆則似乎不足……。”
考量到朝鮮軍糧缺乏，明軍先鋒暫時駐兵在遼東境內；根據《宣祖實錄》紀載，先鋒部隊人數為6,000人，其中有副總兵祖承訓的薊州鎮兵2,400人，和本來要派往建州衛的南軍砲手600人，游擊張奇功麾下3,000人。至於總兵力則是號稱10萬人，實際派發在7萬人。9月己未，敕使薛潘渡江到朝鮮晉見朝鮮國王做最後的協調，“…曰：天兵十許萬方到，且千里饋運，事所未易，預以銀來此換米，何如？…”，這段是說千里運糧不是很簡單，天朝想要帶銀兩來此，然後現地買軍糧，可以嗎？國王是這樣回答的：“…小邦土地偏小，人民貧瘠，且國俗不識貨銀之利，雖有銀兩，不得換米為軍糧矣…”，一段話就等於告訴明朝大軍必須要自帶糧食，朝鮮的農業基本上是已經破產了。在同月的辛酉日也有如下紀載，遼東巡按命令林世祿詢問朝鮮司諫院司諫李幼澄：「你國糧料可支幾月？」答曰：「可支萬兵一月。」又問：「一月之外做何計較？」答曰：「若除平壤之賊，則忠清、全羅亦可取用。」由此可知為了支應大軍，平壤是首要戰略目標。
萬曆二十一年（1593年）正月初五日，明軍進抵平壤城下，八日，與小西行長的第一軍團15,000人戰於平壤城；平壤城東有大同、長慶二門，南有蘆門、含毯二門，西有普通、七星二門，北有密台門，有牡丹峰高聳，地形險要。李如松的部署如下：薊鎮游擊吳惟忠率領步兵當先，遼東副總兵查大受率領騎兵居後，攻擊北部要塞牡丹峰；中軍楊元、右軍張世爵領兵進攻城西七星門；左軍李如柏（李成梁次子）、參將李芳春領兵進攻城西普通門；游擊駱尚志與朝鮮將領兵使李隘、防禦使金應瑞與祖承訓率領明軍喬裝為朝鮮軍麻痺日軍，力攻城南蘆門；主帥李如松督陣。明軍主力將進攻平壤的南、西、北三個方向，東面給日軍留出退軍路線。在12月底沈惟敬聲稱小西願以大同江為界受封，於是明軍定下計策宣稱前來加封，小西直到明軍開到城下才醒悟對方是來攻城的。七日攻城開始，祖承訓率領的明軍率先突破城南的蘆門，接著含談門、普通門、七星門、牡丹峰也相繼被明軍攻佔，日軍黑田長政曾派黑田二十四將之一的久野重勝（久野四兵衛）前往偵查，也被明軍毒刀砍傷於翌日毒發身亡。小西行長一看大勢已去，率領殘兵退守城北一隅風月樓，此時李如松軍共斬首1,200人。入夜，日軍自東南方向突破，渡過大同江向漢城退卻。沿途早有李如松部署的李寧和查大受伏兵等候，一陣掩殺，擊斃日軍360人。當時明軍配有佛朗機炮、虎蹲炮、滅虜炮…等等火炮數百門，日軍火繩槍雖然略優於明軍火銃，但日軍卻沒有明軍威力強大的火炮。朝鮮紀錄「在距城5里許，諸炮一時齊發，聲如天動，俄而花光燭天」，…「倭銃之聲雖四面俱發，而聲聲各聞，天兵之炮如天崩地裂，犯之無不焦爛……」，此戰共殲滅日軍1萬餘人，燒殺溺斃無數，逃散者不及總數的十分之一；明朝的《敘恢復平壤開城戰功疏》记载：「我軍陣亡七百九十六人，受傷一千四百九十二人」；日本的《日本戰史》则称，平壤之役後，小西行長部減員11,300餘名，僅餘6,600人，減員近三分之二，完全喪失了戰鬥力。（另一則日本史料稱，第一軍小西行長部，原有人數一萬八千七百人，顯存六千五百二十人。李如松憑此一戰，威名遠播明日朝三國。在收復平壤、開城之后，他开始進攻漢城）。
由李如松率領的明軍在攻下平壤後，欲乘勝追擊日軍，先遣副總兵查大受與朝鮮將領高彥伯領騎兵數百偵查開城至王京之間的道路，正月廿五日（1593年2月26日）偵查先鋒在碧蹄館（位於首爾西北部的京畿道高陽市德陽區的碧蹄洞）南方礪石嶺遭遇日軍前野長康、加藤光泰率領偵察隊百餘人，雙方交戰互有傷亡。日方在損失約60騎後敗退，查大受則退往碧蹄館。
正月廿五日（2月26日），提督李如松得報後，以為日軍如當地土民所說棄京城撤退，遂率領本部兵馬騎兵3,000餘人（一說2,000人，亦有僅帶親兵1,000人之說法）從開城疾馳引援。
廿六日（2月27日）丑時，日軍先鋒隊的立花宗茂，領3,200名軍兵率先佔領礪石嶺，派出森下釣雲、十時惟由於礪石嶺附近偵查到明軍查大受所部，小放數發鐵砲後回報本隊。清晨7時許，立花軍於樹林中隱藏部隊，僅立出少數軍旗，以此「示弱」戰術引誘查大受來攻，立花軍先鋒隊的十時連久領500兵力，率內田統續、安田國繼（討取森蘭丸之「明智三羽烏」之一）等將投槍、拔刀奮勇突擊至北邊的望客硯，卻遭查大受麾下約3,000兵力的包圍，中箭後（可能為李如梅所射之箭）的十時苦力支撐，由擔任旗奉行的副將池邊永晟代領部隊，直到小野鎮幸、米多比鎮久所率領的第二陣800人前來接應後身亡，此時第二陣的戶次統直騎馬射箭連續射殺數十名明軍。隨後，立花宗茂與其弟高橋統增率本隊2,000從左方奇襲明軍右翼，查大受退往北邊的碧蹄館。宗茂率親兵800追擊，此時池邊永晟奮戰戰死。查大受則接應了馳援而來的李如松。此前哨戰歷經5小時，立花軍轉往碧蹄館西南邊的小丸山佈陣休息，於望客硯接應小早川隆景等日軍大部隊。
據史記載，體察使右議政兪泓馳啓曰：「本月二十七日，李提督領兵發行，聞査副揔ㆍ高彥伯，同往體探，適逢賊六七百名，斬獲四百餘級。」
李如松得知先鋒已經交戰，迅速轉為鶴翼之陣，在望客硯迎接查大受軍勢後於碧蹄館重整軍陣。此時已近中午時分，由小早川隆景、毛利元康、小早川秀包、吉川廣家等率領的20,000名日軍先鋒突然出現，並佔領望客硯，後面還有由宇喜多秀家、黑田長政率領的日軍本隊20,000兵正在進軍。
由於碧蹄館地形狹隘，又多泥濘水田，不利騎兵行動。於是李如松且戰且退，退往北方高陽市的出口惠陰嶺，並急忙傳令中軍主力急速進兵。雖然明軍先鋒在開戰初期成功擊退了小早川隆景的左翼粟屋景雄所率3,000人，但隆景右翼先鋒井上景貞3,000兵卻反包夾了明軍先鋒。不過總體戰況仍是明軍占優。於此同時，立花宗茂領3,000兵從日軍左翼移動至明軍右側山上隱兵埋伏伺機出戰，先命部將立花成家率鐵砲隊速射三回後，以「示強之計」突然立出多數軍旗並擊鳴戰鼓，全軍舉起長槍拔刀反射日光令敵兵敝目，一舉斬入突擊進至明軍本陣處。立花軍中其中一位金甲武將（安東常久）與李如松單挑時，被李如梅射殺（根據部分史料，當時金甲武將可能被誤認為井上景貞，但他在此役後仍生還。並於之後小早川秀秋為家督時代時回仕毛利家，後出奔。），同時明軍左翼也遭到毛利元康、小早川秀包、筑紫廣門的突擊，正面則被小早川隆景壓制，明軍頓時陷入了被圍之勢。李如柏、李寧、查大受、張世爵、方時輝、王問等明將皆親自提刀奮戰。其中，明將李有聲為護衛李如松而遭到隆景部將井上景貞擊殺，如松的親衛隊也戰死80餘人。而立花軍中也有小野久八郎、小串成重、小野成幸戰死，小早川秀包麾下也有8名家臣先後身亡。不久小早川隆景派出吉川廣家、宇喜多秀家（實則為其重臣戶川達安所率）、黑田長政率部對明軍進行包圍。兩軍從午後開戰已逾6個小時。至黃昏時分，明軍終於等到左協大將副總兵楊元率援軍到來（這支部隊的規模應當為數不少可能在五千人因為還出現了「中軍旗鼓官王希魯」這樣的職位）。楊元奮勇衝破日軍包圍，搶佔李如松右方陣地，並和李寧的砲營共同發砲轟擊日軍，援護明軍撤退。立花宗茂、宇喜多秀家派出部隊猛烈追擊至惠陰嶺，立花一族之戶次鎮林在追擊時奮勇戰死。而小早川隆景則擔憂明軍撤退會設伏，勸追擊的日軍開始退兵。（以上過程為參考、融合《明史‧李如松傳》、《日本戰史‧朝鮮役》的說法。）
兩軍從午後交戰6個小時至黃昏，明朝紀載日軍死亡超過8,000人，朝鮮史則載兩軍各死傷5、6百人，部分日史記載明軍參戰人數為20,000人，倭軍斬首明軍6,000人。满清编写者則说“诸营上军籍，死亡殆二万”云云，占了当时明軍入援朝鮮参战兵力的一半。都遠遠高於朝鮮史的記載，根據朝鮮宣祖實錄所記，明軍投入戰役人數當不超過5,000人，當日軍望見明軍步兵抵達後隨即撤退，可見明軍投入戰場兵力並不多。而朝鲜《宣祖实录》记载，此役之后，明军大势依然，應可確信二万之死亡云云系虚说。而且《神宗实录》中还记有“夫是役也大将仅以身免，倭何惧之有”，认为明军胜利。另外，日军阵亡了很多有名有姓的“武将”，但是日本战国史的武将比率很高，即使在川中岛阵亡八千人中也有四十多个“武将”。
戰後日軍並未追擊，反而退返王京，顯示日軍並未完全控制戰場，此役應該并非大胜。但是李如松經此役後，因親兵死傷甚重，加上明軍北兵與南兵之爭日烈，李如松以後就無意進取，先退開城，後又退往平壤。
之後日軍於2月約2萬兵力轉攻京城西北方的幸州山城，朝鮮城將權慄以少數兵力大敗日軍，日將石田三成、吉川廣家等負傷。2月，李如松改變策略，於3月初焚燒日軍於龍山的糧倉粟數十萬，逼使其撤退。4月19日，日軍因為缺糧，被逼由漢城（今首爾）撤退。5月四川參將劉綎率軍五千趕赴援朝，並被任命為副總兵。日軍撤退至釜山，此後陸戰皆集中在朝鮮南部四道，並以朝鮮勤王軍與倭軍的戰鬥為主。日軍於6月中旬又攻打朝鮮南部的晉州城，為第二次晉州城攻略戰，日軍加藤清正、黑田長政以部下飯田直景、庄林一心、後藤基次以龜甲車破壞城壁，大部日軍湧入晉州城而攻陷，城將金千鎰戰死。
明派遣大軍援朝後，兩國在進軍速度、戰力補充、情報、戰功等問題上多所爭執：朝鮮官員復土心切，一再催促明軍進兵，明軍將領多半言明糧食欠缺，天候不佳，同時因為戰亂情報不明，進兵有所疑慮。同時明軍因為將南兵留在平壤，在前線的反而多是北兵，北兵以騎兵為多，根據當時將領所言，明軍損失戰馬多達12000匹，造成騎兵戰力的嚴重匱乏。此外明軍也碰到逃兵問題，尤其以遼東兵最為嚴重，而南兵因為家鄉遙遠，反而不會脫逃，為了填補空缺，明將多向朝鮮要求勾軍來填補缺額。此外，明將也多次反映朝鮮提供的敵情不明，無法知道要用多少兵力才可以消滅入侵的日軍。宋應昌則是完全不相信朝鮮的官員，認為他們很容易洩漏軍機，往往軍情只要移咨朝鮮官員，他們一下朝後就會轉告親友，當時朝鮮的風俗也不以洩漏朝政為可恥，反而認為如果不說就是瞧不起親友，兩國官員為此多所齟齬。
平壤之役南兵先登城牆，但北兵多斬首級；李如松上報明廷時多表北兵殺敵之功，而少論南兵先登之功，造成南兵將領與北兵將領之間的隔閡。另一方面，明廷因有北兵斬殺朝鮮人冒功的傳言，特派欽差大臣來朝鮮查證。而碧蹄館戰後，留守平壤的明朝南兵間又傳出北兵作戰不力的風聲，並有人以此上報經略宋應昌。明朝南、北兵之間的矛盾乃越演越烈。
經略以文人而節制軍事，提督要求增兵増餉都需經過經略上呈；前此，提督李如松總以為經略宋應昌受南兵影響，故意壓文不發。另一方面，宋卻以為武人愛說大話，往往上呈不實，例如說在戰功上以少報多；又受朝廷和戰議論的影響，認為進軍應審慎籌畫。兩人公文往來莫衷一是，結果造成明軍高層在戰略意見上不統一，影響戰爭指揮：一開始是提督主戰而經略不許；後來，當碧蹄館戰後日軍後撤時，又變成經略主張急追，提督主張緩進。
依朝鲜史书宣祖實錄的紀載，自從日軍登陸以後，朝鮮水軍隨即在全羅左道水軍節度使李舜臣率領下展開一連串的反擊：
在明軍馳援的同時，朝鮮水師在海戰則佔據了主動權。1592年5月4日，當時的朝鮮全羅左道水軍節度使李舜臣，統率75艘艦船駛出全羅南道麗水港，準備對日軍發動進攻。日軍藤堂高虎部率領50艘木製戰船。5月7日，朝鮮水師偷襲正登岸的日軍舰队，日軍被殺個措手不及。一輪激戰過後，日軍損失慘重，被朝鮮水師消滅了十几艘戰船，有数只艦船试图逃跑也被歼灭。李舜臣繼而在合浦、赤珍浦海面再殲滅餘下的日軍。5月9日，這場海戰最终结束。從此朝鮮水師掌握了制海權。全場海戰朝鮮水師共殲滅日艦26艘，日軍傷亡甚众，相對而言，朝鮮水師只是傷亡了很少的兵力，艦船更是絲毫無損。
玉浦海戰是壬辰戰爭爆發以來，朝鮮軍隊的首場大捷，大大振奮了朝鮮軍民抗敵的決心，並使得日軍輸送兵力和糧食輜重至朝鮮半島從此變得困難，因為日軍在此戰後已喪失大半制海權。
1592年5月27日，日本水師不甘失敗，轉而向慶尚道的泗川進攻。李舜臣得知消息後，立即於5月29日率船隊23艘出發，迅速駛至泗川海灣外面。當時海灣內共有12艘日本樓船，但日軍對上次海戰失利猶有餘悸，因此當他們見到朝鮮水師馳援，便迅速逃至陸上，在山上布防。李舜臣於是命朝鮮水師假裝撤退，以引誘日軍登船追擊，結果日軍中計。這時正好潮漲，大大有利於朝鮮水師的船和板屋船這類大型艦船活動，因此當日艦出動時，李舜臣即下令眾艦船迎擊。很快地，日艦便被打敗。而李舜臣雖然在戰鬥中負傷，但仍繼續指揮官兵殺敵，結果12艘日艦全部被擊沉。經此戰役，日本水師再不主動進攻，而改為防禦和偷襲朝鮮水師。
6月2日，李舜臣統領的朝鮮水師船隊主動出擊，進攻在唐浦港內停泊的21艘日艦，日艦被朝鮮水師兩面包抄，最後被全殲。唐浦海戰獲勝後，李舜臣稍事休整。6月4日，與全羅右水使李億祺會師，並於6月5日清晨齊其一起率領51艘戰船，向固城唐項浦的海灣內的26艘日艦進攻，並從兩面對其包抄圍攻。結果日艦除了一艘被故意放走外，其餘全部被殲滅。當晚，該艘故意放走的日艦將岸上日軍接載上船，並欲於6月6日凌晨逃走，但這正中了李舜臣的計謀，結果朝鮮水師殲滅了該艘日艦，固城唐項浦海灣的全部日艦均被殲滅。6月7日，朝鮮水師再度出擊，向栗浦的7艘日艦進攻，日軍不敢迎戰，掉頭便跑，但結果仍被李舜臣全殲。
這三場海戰後，日本水師大受打擊，但日軍主帥仍未心息，決定集結兵力，與朝鮮水師進行決戰，是為閒山島海戰。
為了與朝鮮水師進行決戰，日本水師在巨濟島一帶集結，準備兵分三路向朝鮮水師發動進攻。而李舜臣則將其全羅道的艦隊和慶尚道的部分艦隊組成聯合艦隊，準備迎戰。7月6日，李舜臣進兵出唐浦附近水域，並於7月7日清晨，將集結於巨濟島的日本水師引至閒山島附近水域決戰。李舜臣選擇在此地決戰是因為這裡有著較為寬闊的深水環境，易於設置埋伏，可以向日本艦隊進行包圍殲滅。
在決戰開始不久後，朝鮮水師的戰船即將日軍包抄起來，而朝鮮水師的船則向日軍艦隊直撞過去，很快便撞翻了日軍艦隊前列的幾艘大船，而其餘朝鮮戰船也奮勇殺敵，與敵作殊死戰，結果日軍的61艘戰艦被全殲。
經此一役，日本水師完全喪失制海權，無法運送軍糧，日本陸軍因此無法再行侵略，結果豐臣秀吉只有與明朝講和，改令日軍於朝鮮南端建築倭城以作防備和儲糧之用。而李舜臣則被封為二品正憲大夫、三道水師統制使。
1592年10月4日李舜臣與李億祺、元均等欲率水師奇襲釜山城，切斷日軍聯結對馬及九州的補給線。然而日本軍早已得知消息做好準備，閉門不出 ，從城中槍擊重創朝鮮軍。朝鮮將領鄭運中彈身亡，險些被俘虜的李舜臣逃向加徳島。連勝皆捷的朝鮮水師損失慘重，此役戰果僅止於燒掉釜山城下400余艘空船。李舜臣不再輕易言戰，轉為攻擊沒有戰船護衛的運輸船，降低日軍補給能力。
1593年（文祿二年）六月，日本因海戰失利補給無法送至，加上朝鮮破壞過度，造成瘟疫流行，當地徵發糧食不易，以及急於保全佔據朝鮮南部四道的戰果，遂派使節隨同明使沈惟敬由釜山至北京城議和。7月，明廷宣詔退兵以進行日本封貢事宜，於是李如松大軍撤退，只留劉綎及游擊吳惟忠共七千六百人分別扼守要口。但兵部尚書石星一意主和，再撤吳惟忠部，結果只留劉綎部防守。9月，朝鮮國王李昖雖上表答謝朝廷援救及助其復國，但是暗中對明、日議和卻排除朝鮮有所不滿——此時日軍仍然佔據朝鮮南部四道，並控制釜山城。12月，明廷命薊遼總督顧養謙兼責打理朝鮮事宜，並召回宋應昌、李如松；明帝雖下旨撤軍，但認為“倭情狡诈，未可遽称事完”。
1593年（文祿二年）5月8日，丰臣秀吉在名护屋会见了到达日本的明朝使团。由于语言不通，双方的会谈仍就在沈惟敬和小西行长间进行。丰臣秀吉提出了“大明、日本和平条件”七条如下：
沈惟敬竟擅自答应了這七条，並对同行的谢用锌、徐一贯等人诈称丰臣秀吉已同意向明朝称臣，请求封贡，并撤回侵朝日军。另一方面，小西行长则对丰臣秀吉报告说，明使已同意他的條件，只需遣使与明使一道前往北京请明帝批准條款。就这样，在兩邊談判者各自對上隱瞒實情的狀況下，中、日双方幾乎就要达成“协议”。1594年10月，日本派出議和使者小西飛驒守如安（小西如安本氏「內藤」，號「如安」；「飛驒守」是他的官位，但明、朝兩國當時的紀錄卻將其人名誤為「小西飛」）与明朝使团一道去北京。
小西如安在北京与明兵部尚書石星谈判，兵部官員还與小西进行了详细的对谈；但小西如安欺對方不懂日语，信口答应了石星提出的三项条款：
同时，沈惟敬也對明廷递交了伪造的日本降表；明朝君臣大为满意，萬曆帝立即決定册封丰臣秀吉为「日本国王」，并按小西提供的名单册封了日本国大臣。其後於1595年1月，明廷正式派出使者，令沈惟敬陪同前往日本冊封豐臣秀吉；冊封诏书内容如下：
这封诏书现存于大阪歷史博物館，为惯用的御笔文体写就，使用一贯的中央大国皇帝对蕞尔小邦降恩封赏的口气；据《日本外史》记载丰臣秀吉对此勃然大怒道：“吾掌握日本，欲王则王，何待髯虏之封哉！如天朝何。”将诏书撕碎于地，并怒逐明使臣，不久后再次遣兵入侵朝鲜。
当时奉旨与日本谈判的石星、沈惟敬等人一心欺瞒蒙混，竭力对万历皇帝掩盖丰臣秀吉的真实意图，妄图侥幸无事；然而後來豐臣秀吉将負責議和的小西行长治罪，并驱逐明、朝使团出境，使得历时两年的「和局」彻底破裂，沈惟敬乃滞留朝鲜，不敢回國。他假造了一道丰臣秀吉的谢恩表，交由另一使臣递交明廷，但这道假冒文件被明廷识破，再加上朝鲜方面传来日本再度备战的消息，明萬曆帝方知上当，大怒，即令邢玠將石星下狱问罪，并命驻朝明军捉拿沈惟敬，就地正法。
有人对《日本外史》的历史真实性存在质疑，其一根据《日本外史》原文“取册书扯裂之”，撕裂诏书一說應為後世創作作品所述，實際上秀吉將本文件交由堀尾吉晴保管，現在是日本的重要文化財，收藏於大阪歷史博物館（「綾本墨書 明王贈豊太閤冊封文」），另由島津義弘寫給兒子忠恆的一封信顯示，秀吉在1596年9月1日會見明朝使者時心情很好，而且沒有跡象表明秀吉對冊封行為有任何反對。
其二是根据当时随行的官员以及在日本传教的外国传教士的描述。根据册封副使的说法当时的册封是这样的：
根据册封正使杨方亨的说法：
当时在日本传教的外国传教士路易斯·弗洛伊斯，在『十六・七世紀イエズス会日本報告集（十六・七世纪耶稣教会日本报告集）』中也描写了相似的场景。所以丰臣秀吉當下是答應了明朝封賞，但後來態度才有了變化。
在第一次冲突平息了两年多後，1596年4月，明朝的使者李宗城因為犯了貪淫罪，被日本守臣所逐，奔還汉城，朝鮮方面隨即下詔逮捕其入獄，但已惹來豐臣秀吉的不滿。5月，明朝再次提議賜封豐臣秀吉，命都督僉事楊方亨、游擊沈惟敬一同前往。9月，明朝賜封的使者楊方亨抵達日本，但豐臣秀吉因朝鮮王子不偕同前來以答謝而發怒。結果豐臣秀吉不肯受封，並决心再次发兵侵略朝鮮。在1597年1月，日軍拒不退出釜山，朝鮮得知日軍再次入侵，於是遣使再至明朝求援。這次再侵朝鮮，豐臣秀吉吸收了上次海戰失利使得不能大量運兵和運輸補給的教訓，使用反間計誣陷李舜臣陰謀篡權，使得李昖將李舜臣下獄，其後將其貶為士兵，只能白衣從軍。
1597年2月（明万历二十五年正月），丰臣秀吉发动了第二次对朝战争。这次来势更加汹汹，准备更加充足。神宗得讯后，知道使臣和兵部没有把日本方面的真实意图动向报告朝廷，一心求和，竭力欺瞒。当即大怒，马上下令革去兵部尚书石星等人的职务，令邢玠以兵部尚书出任总督，都御史杨镐经略朝鲜军务，再次出兵援朝。同时下谕旨声明石星罪状“倭奴狂逞，掠占属国，窥犯内地，皆前兵部尚书石星谄贼酿患，欺君误国，……着锦衣卫拿去法司，从重议罪来说”。
1597年初，日本出動陸軍141,490人，水軍22,100人，水陸並進再度入侵朝鮮。
2月，明朝再次議定援朝征日，以麻貴為備倭總兵官，統率南北諸軍。在3月，明朝以山東右參政楊鎬為僉都御史，經略朝鮮軍務，並以兵部侍郎邢玠為尚書，總督薊、遼、保定軍務，經略御倭。5月，邢玠趕至遼東。
开赴至朝鲜的第一批明军共约3万余人。
明军的战略部署是，上述各军据守本部要塞，待总督邢玠率领的4万大军一到，明军和朝鲜军即转入战略反攻，由南原、忠州发动钳形攻势，直捣釜山之敌。
6月，日本小型兵船數千艘停舶於釜山，逐步向梁山、熊川逼近。8月，日本攻破泗川、南海、光州，最后进攻南原（為全羅道外藩，一旦失守，天津、登、萊皆可揚帆而至）。
在八月十三日，由宇喜多秀家、小西行長和島津義弘等所率領的五萬大軍來到南原城外，因為朝鮮水軍的覆沒導致南朝鮮的防線開始崩潰，而南原周圍的朝鮮守軍也陸續逃離崗位。南原頓時成為孤城，內中的守軍以楊元所率領的3000明軍為主，李福男等韓將亦率領一千多朝鮮軍駐守在此。
在三天圍城後南原守軍不支而被攻破，楊元率領少數隨從成功突圍，而諸位韓將則全數陣亡，其中楊元曾邀李福男與其一起突圍然而被嚴正拒絕。楊元雖然成功突圍回到漢城，然而事後因全軍覆沒之罪被明朝下令處決。
攻破南原后，付出很大伤亡代价的日军屠城一日。这时驻全州的明将陈愚忠因南原失陷立即撤退，这样加藤清正的右路军便兵不血刃的拿下了全州。之后日军又分别攻陷黄石山、金州、公州等地，汉城的屏障尽失，再一次濒临险境，朝鲜局势再度危若累卵。9月6日，麻贵命副总兵解生等率军2千，奔赴稷山北部，巩固汉城的前沿阵地。7日，于稷山附近与日本黑田長政率领的日军第三军团发生遭遇战，根據中興誌以及宣祖實錄的敘述明軍以騎兵戰術大破日軍，明军的后续部队杨登山率军赶到，大败黑田長政，明軍傷亡200餘人，日軍死亡500-600餘人，后因毛利秀元大軍趕到而撤退。
9月，明軍逮捕前兵部尚書石星下獄，並與在明軍和日軍之間兩邊獲取利益的沈惟敬一同俱論罪處死，結果石星於1599年死於獄中，沈惟敬則於市集斬首。
10月麻貴以李如梅率數千攻向星州谷城，城將小早川秀包、筑紫廣門起先死守，之後迎接小早川秀秋派出的援軍山口正弘、南部無右衛門後轉守為攻，如梅遂退去。同10月攻打青山的日军毛利秀元等则被参将彭友德率领的明丶朝联军重兵包围，死伤惨重，幸蔚山城將淺野幸長、宍戶元續、太田一吉的接應援護才撤退。12月，援朝明軍與日軍大戰於蔚山。
根据《晚明史》一书的记述，当时在朝兵力，明军远低于日军，丰臣秀吉调动的侵朝兵力，这时候已达十二万之多，而明朝方面的援军根據朝鲜王朝《宣祖实录》的记载，明军达十一万人。不过这些数字都是万历二十六年的事，万历二十五年战争初期兵力没有达到这一水準， 日军明显占据优势地位。
所以一开始明军在朝鲜的形势相当困难，据守的城市接连沦陷，进攻也遭失败。在第一次蔚山之战中，经略杨镐被日将小早川秀秋击败，阵亡二万。明军战死的軍官有遊擊楊万金、千總麻来、李洞賓、周道繼、王子和、張應元、陳觀策、錢應太，把總郭安民，哨總湯文瓚等。此外遊擊陳寅與陳愚沖两人负伤。但在万历帝坚定不移的支持之下，形势开始逆转，日军逐渐抵挡不住明军的攻势，据朝鲜人赵庆男《乱中杂录》记载：“丁酉九月六日，天将副总兵解生等，大败贼众于稷山金岛坪，加藤清正等退遁，流下岭南……麻贵领大军启行，至水原下寨，遣 兵埋伏于芥川上下，以为后援……七日黎明，天兵左协出柳浦，右协发令通，大军直从坦途，锣响三成，喊声四合，连放大炮，萬旗齐颤，铁马云腾，枪剑奋飞，驰突乱砍，贼尸遍野，一日六合，贼逝披麾……翌日平明，贼兵齐放连炮，张鹤翼以进，白刃交挥，杀气连天，奇形异状，惊惑人眼。天兵应炮突起，铁鞭之下，贼不措手，合战未几，贼兵败遁，向木川清州而走”。
日军遭此惨败之后，明军乘胜追击，接连获胜，二十三日又攻取蔚山，最後把日军将领加藤清正率领的1萬6千人围困在岛山，雖讓日軍餓死達上萬人，僅餘千人，但这时候日本大批援军到来前後包夾明軍，这时候明军的经略杨镐懼敵又临阵脱逃，仓促撤军，反而使明朝聯軍被斬殺數千人。
而明軍於攻打蔚山期間，明將高策趁日軍大部趕往蔚山援救之時率軍偷襲日軍大本營釜山，也被日將立花宗茂以8百人用夜襲和火計擊退，是為般丹之戰，同時更有另一支明朝聯軍偷襲梁山，但被黑田孝高擊退。
1598年1月，明朝援朝和攻打蔚山的軍隊因為日本的毛利秀元、黑田長政等日軍的援兵突然趕至，大為震驚。楊鎬趕不及下令，便策馬率先趕奔漢城，麻貴亦繼而趕之，一時間所有軍隊皆潰敗。只有副將吳惟忠、游擊茅國器斷後，日軍在得勝後暫退以保住勝果，明軍的輜重大多喪失。楊鎬與邢玠卻向明朝朝廷謊報前線大捷。但當時各營欲向明朝朝廷回報，士卒死傷二萬，這使楊鎬大怒，按而不報，只稱死傷百餘人。贊畫主事丁應泰得知戰敗，至楊鎬處商議應對計略，但楊鎬竟出示張位、沈一貫的手書，揚揚自得。這令丁應泰憤而向朝廷回報戰敗事實，明朝首輔趙志皋欲保楊鎬，決定暫時不逮捕他，但亦遣官查察。
2月，邢玠招募江西水軍，並欲以海路運兵以作持久之計，5月明朝廷叫回攻略蔚山城失敗的楊鎬，新增兵力給於劉綎、邢玠並調派水陸約15萬軍力進朝鮮，於是都督陳璘以兩廣之兵，劉綎以四川之兵，鄧子龍以浙江、南京之兵趕至增援，明將張榜、藍芳威等於此時參陣。6月，楊鎬罷職候查。
戰事再起之初，朝鮮水師由元均率领。然而，元均于1597年8月27日（万历二十五年七月十五）在漆川梁遭日将藤堂高虎的伏击而阵亡，朝鮮水師幾乎全軍覆滅，朝鮮更是丧失了制海權。無奈之下，朝鮮政府再次起用本來已遭罷黜的李舜臣。李舜臣到任時，原來苦心經營的水師，只剩下數艘艦隻。但他因為身繫救國重任，惟有在這個逆境裡盡其全力，在全羅道右水營著手重建海軍。8月28日，李舜臣指揮著這支剛重建的水師，再度與日本水師決戰，而決戰地就是在鳴梁海峽。
李舜臣守在鳴梁海峽，但因兵力薄弱，所以決定設陷阱，派人乘退潮時在岸邊設置了鐵索與木樁。9月16日，日軍統帥藤堂高虎率領330餘艘戰船和2萬陸軍出發，欲趁漲潮時攻進鳴梁海峽，全殲朝鮮水師。李舜臣首先將海峽內的民用船隻僑裝成戰艦，以擾亂日軍，使其以為朝鮮水師已恢復過來。他自己則親率12艘戰船引敵深入鳴梁海峽。在成功引誘日軍進攻後，隐蔽在山脚的朝鲜海军突然对日军發起集中的攻擊，炮轰日舰。日军欲发起反击，由于朝鲜海军占据地利优势，无法打中目标。朝鲜海军趁机對準日軍指揮艦发起攻击，殲滅日軍指揮艦和其他戰船2艘，当场擊斃日軍主帥來島通總。就在这時，潮水開始退卻，日舰相互撞擊，阵势大乱，大量日舰挤在狭窄的海峡内，成了极其被动的攻击目标。朝鮮艦船趁勢進攻，日艦因失去主帥，軍心散渙，只得順潮向東撤退，但卻遇上李舜臣事先埋下的鐵索和木樁，無法退卻。朝鲜海军发起总攻，凭借着13艘军舰成功击沉日艦36艘，击毁92艘，並擊斃日軍8000餘人，大获全胜，而朝鲜只阵亡14人。朝鲜再度重創了日本水師，成功切断稷山之戰以來受日军控制的黄海補给線，重新掌握了制海權。
同年，日軍小早川秀秋等部七萬多人以修整名义休整回國，以包含加藤清正、島津義弘等所部在內的64,000兵力防守佔領區。
邢玠將明軍兵力分為水陸四路，每路置一名大將，中路李如梅（後替換為董一元），東路麻貴，西路劉鋌，水路陳璘，各自負責握守要地，相機而動，進攻之時，各率約五萬分三路，以麻貴攻蔚山、董一元、劉鋌進攻泗川、順天。
万历二十六年（1598年、日本庆长三年）8月，明將麻貴率領24000人、朝鮮将金应瑞率领5514人，攻打由加藤清正把守的蔚山倭城。明、朝联军在蔚山一带斩获日军甚众。加藤清正将明军诱入空城之内，伏兵突起，联军被打败。。
萬曆二十六年，邢玠將援朝軍分為三路，東路麻貴，進剿加藤清正；中路董一元，進剿島津義弘；西路劉綎，進剿小西行長；陳璘的水軍在海上策應。泗川之戰便是中路董一元軍進行的攻打泗川島津義弘的戰役。此戰明軍26000餘人，朝軍2200餘人，日軍一萬餘人；初期聯軍進展順利，收復晉州等地，將日軍逼入倭城（城堡）；在後續的攻城中，聯軍甚至一度打破城門攻入，但在這個重要關頭明軍後方的彈藥竟然發生了劇烈爆炸，聯軍前鋒頓成驚弓之鳥，以為背後遭到伏擊，競相奔潰；而城外的部隊在如此危急的時刻既沒有組織反擊也沒有接應前軍，竟然也加入逃跑的隊伍，一時間聯軍大潰；日軍乘機發起反擊。 泗川之戰聯軍損失極其慘重，陣亡者屍體枕藉慘不忍睹，倖存的敗退者互相攙扶嚎啕大哭，在明朝與朝鮮的記載中，聯軍陣亡人數有七千一說，有一萬一說，日方甚至記載斬敵軍三萬八千餘，被認為是萬曆援朝戰爭中聯軍損失最為慘重的戰役。戰役暴露了明軍諸多問題，最大的有兩點：其一是丁酉之戰明軍兵員素質較壬辰之戰時大幅度下降，戰況利則一擁而上，不利則一哄而散，反映了明軍精兵較少，冗兵較多的現實問題；其二是各部缺乏配合，如果此戰中後軍堅守陣線不退，則可以穩住前軍軍心以圖再戰或者至少將損失降到最低而不至全軍潰敗淪為魚肉。在明軍內部，明將董一元本來是做為參軍赴朝的，後來臨時接替李如梅的職位，對手下的部隊並不是很熟悉，將不知兵，無法做到人盡其才，兵不知將，這是帶兵的大忌。
第二次泗川戰役，由明軍近2萬人來對抗日軍的第5軍團1萬4千餘人，戰役結果明軍勝利，共斃傷日軍6千餘人，明軍傷亡3千餘 日軍當時已經知道豐臣秀吉已死，軍心渙散，無心戀戰。
駐朝鮮西部日軍接到撤退命令後，擬於萬曆二十六年（1598年）十一月十一日起開始撤退。駐順天之第二軍先撤，接著，駐泗川、南海、固城之日軍，依次到巨濟島集結，候船回國。十一日晨，第二軍部隊登船待發。其先遣部隊駛至光陽灣口的貓島附近海面時，受到中朝聯軍水師的攔擊，退路被截斷。為了突破重圍，第二軍編組了一支衝鋒船隊，連日向聯軍水師發起攻擊，均未能奏效，只得向駐泗川、南海之日軍求援。
此時，駐泗川、新城之日軍第五軍主力，在島津義弘率領下，已經登船，只待漲潮出發，駛往巨濟島。島津義弘接到小西行長的求援信後，當即率領這支龐大的船隊，於十八日夜乘月色向露梁海峽疾駛，企圖突入光陽灣，解小西行長之圍。中途與從南海開來之宗義智部船隊會合。兩支船隊會合後，共有兵力萬餘人，艦船500餘艘，於午夜開始通過露梁海峽。 陳璘、李舜臣獲悉日援軍西進的情報後，立即著手調整部署，決心在露梁以西海域，包圍和殲滅救援之敵。其作戰部署是： 一、以副將鄧子龍率兵1000人，駕3艘巨艦為前鋒，埋伏於露梁海北側，待日船隊通過海峽後，迂迴到側後發起攻擊，切斷其歸路； 二、以陳璘率明朝水師主力為左軍，泊昆陽之竹島與水門洞港灣內正面阻擊，待機出擊； 三、以李舜臣率朝鮮水師為右軍，進泊南海之觀音浦，待機與明軍夾擊日軍。 朝鮮首相柳成龍親筆書寫的戰史 十九日丑時，石曼子（即島津義弘）率軍萬餘、戰船500只西上，進入露梁海明軍預伏地，遭陳璘部阻擊，調頭南下。天亮，日軍發現前有伏兵，又向北迴師，遭到北岸鄧子龍部截擊。聯軍三面合圍，在露梁海與日軍展開激戰。 此時，“月掛西山，山影倒海，半邊微明，我船無數，從陰影中來，將近賊船，前鋒放火砲，吶喊直駛向賊，諸船皆應之。賊知我來，一時鳥銃齊發，聲震海中，飛丸落於水中者如雨。” 聯軍駕船逼近日艦，躍上敵船，短兵肉搏。北岸鄧子龍率士卒300登上朝鮮船，奮勇衝殺，由於眾寡懸殊，鄧子龍部旋即被日船包圍。 “子龍素慷慨，年逾七十，意氣彌厲，欲得首功，急攜壯士二百，躍上朝鮮船，直前奮擊，賊死傷無數。他舟誤擲火器入子龍舟。舟中火，賊乘之，子龍戰死。”
戰至中午，陳璘派水師副將陳蠶、游擊季金率部來援。與此同時，中朝聯軍水師左右兩路分別從南北兩個方向，向大島以東海面之日船隊主力，展開了猛烈的攻擊。 《朝鮮李忠武公行述》對這場戰鬥作了生動的描述：“兩軍突發，左右掩擊，炮鼓齊鳴，矢石交下，柴火亂投，殺喊之聲，山海同撼。許多倭船，大半延燃，賊兵殊死血戰，勢不能支，乃進入觀音浦，日已明矣。”
陳璘率主力與李舜臣夾擊日艦，施放噴火筒，焚毀日軍大部分戰船。日軍跳水登岸，又遭陸上明軍截殺，死傷大半。石曼子（島津義弘）不支，僅率數百隻戰船潰逃。李舜臣率朝鮮水師跟踪追擊，進入觀音浦，再度與日軍血戰。陳璘也率中國水師趕來支援，用虎蹲砲連續轟擊，日船紛紛起火。在一片混亂之中，日軍仍垂死掙扎，拼命反擊。 李舜臣趁勢追擊, 但被日本人的火繩槍射中胸口, 不幸陣亡。 臨終前李舜臣命令麾下將士秘不發喪, 繼續追擊日軍, 燒毀倭船200餘艘。島津義弘率領殘餘倭船百餘艘遁入外海, 經過中朝聯軍一天的追擊, 只剩下百餘艘船狼狽逃走, 其餘倭船均被聯軍燒毀，二百艘戰船沉入海底。小西行長趁海戰之際, 率軍成功逃脫。至此, 露梁海戰結束, 中朝聯軍獲得大勝。
12月，仍然留在朝鮮的日本殘兵再次由乙山偷渡，但因為崖深而道淺，將士不敢進。結果陳璘在夜裡潛入，向其連珠炮發，日軍只得逃去，陳璘更領明軍追擊將其全滅。
1599年5月（明万历二十七年四月），明军班师回朝，萬曆皇帝升座午门，接受都督邢玠等献上的日本俘虏六十一人，都“付所司正法”，砍下来的敌人的头颅传送天下。同日，萬曆皇帝接受百官朝贺，祭告郊庙，把献祭祖先的果酒都分赐给了内阁官员们。次月，颁平倭诏诏告天下。
根據1569年明兵部侍郎譚綸的記載，明朝军户籍总数3,138,300人，實際兵員為845,000人。在帝國北邊服役的軍士推測有50萬人，馬匹10萬匹。若萬曆時期軍隊數目不變的話，援朝兵力按本條目所載資料前後合計約12萬人次（非同時派遣），等於明朝北疆約4.17%的兵力，這個數字不算大，但塞外遠征對於一個農業國家而言仍是不小的負擔。
此戰軍費對明朝形成沉重的財政支出；明稅率極低，只在5.5%－12%之間，故一般官府稅收難以支應大規模突發狀況，援朝軍費實質上是由太倉庫支應。太倉庫在1592年時有白銀7,000,000兩，每年流入約當2,092,000兩；此戰軍費支出，平均一年即達2,400,000兩左右，造成了太倉庫的赤字。加之萬曆三大征接連發生，導致終萬曆一朝，太倉庫財力匱乏，造成明末財政的紊亂。
除了長期征伐帶給國力日衰的明朝額外負擔外，建州衛首領努爾哈赤也通過此戰觀察了明軍的作戰方式，使他在日後的對明戰役中佔得了情報上的優勢。
朝鮮受到大規模入侵，全部國土幾淪為戰場，人民流離失所，戰後百業蕭條、農產大減，經濟秩序多年後仍不能恢復。
戰前朝鮮与宋朝一样重文輕武，家中如有兩個小孩，唸書者坐於堂上，習武者即在堂下供其使喚，如同奴僕。據《宣祖實錄》記載，朝鮮兵如同羊群，聞砲聲即潰；加之器械不修、城池不固，只能倚賴明軍做為抗擊日軍的主力。經此教訓，朝鮮轉而重視火器的發展，在炮手的訓練上成效尤著；後來滿清征兵朝鮮，朝鮮砲手即曾在松錦之戰重創清軍。明朝兩次大軍馳援使朝鮮免於亡國，朝鮮對此心存感念。後來雖被滿清征服，但在明清戰爭中一直暗地支持明朝。
戰後朝鮮人民對日感情一時惡化，直到1607年朝鮮宣祖派遣通信使出使德川幕府之後，雙方遣返俘虜，才恢復邦交。
豐臣秀吉動用西國大名為主力，打算以朝鮮出征為名以發洩文治派不滿的勢力（以石田三成等奉行為代表）與武功派（包括加藤清正、福島正則等武將）的鬥爭。由於此種矛盾，秀吉死後，日本再度陷入各諸侯國戰亂，豐臣政權「大老」德川家康得以聯合福島、加藤諸將，在1600年的關原之戰中擊敗由石田三成號召、另一「大老」毛利輝元領銜的反德川勢力，奪得最高權力；最後取豐臣家而代之，开創了由德川氏世襲的江戶幕府政權。
由於此役緣故，大批朝鮮人雇工及平民戰俘被帶往日本，其中的陶藝工匠將大陸式瓷器及瓦片製作技術引入日本，一般俘虜（有的被賣為奴隸）則多少填補了日本勞動力的損失；此外，其時方興未艾的日本儒学，也因朝鲜学者及書本的挹注而蓬勃发展，終於催生了江戶时代的朱子学与水戶学。
在京都市丰国神社附近建有埋藏朝鲜与明朝将士耳鼻的耳冢，但实际是否真的埋有这些耳鼻并没有确认。当时统计战死者数量以所割鼻为准.原名鼻冢，后林羅山因不雅而改名耳冢。
《壬辰之戰 （页面存档备份，存于互联网档案馆）》桌上遊戲，2016年