文祿元年 (1592 年) 三月,豐臣秀吉動員三十餘萬兵力,渡海至朝鮮作戰。其中以關西大名的軍隊為作戰主力 (宇喜多秀家為總大將,石田三成、大谷吉繼等為總奉行),關東大名的則為預備隊。
四月十四日,日軍於釜山登陸,朝鮮守將鄭撥戰死。日軍攻東萊城,守將宋象賢戰死。尚州守將李鎰敗走。朝鮮國王宣祖李昖命申砬負責慶尚、全羅、忠清三道防務,申砬會合李鎰於彈琴台。小西行長領兵圍攻申砬與李鎰,彈琴台之戰爆發,朝鮮軍全軍覆沒,申砬戰死。李鎰逃往京師漢城報告兵敗消息,李昖在與群臣商議後,決定放棄漢城,出奔平壤。五月二日,日軍攻克漢城,俘朝鮮王子。
朝鮮各地鄉紳自組義軍,對抗日軍侵略,這皆阻礙了日軍的前進。奈何登陸朝鮮的日軍越來越多,李昖六月十一日離開平壤,流亡至義州 (明朝與朝鮮接壤的地方),並向宗主國明朝求援。十五日,平壤失陷,當時朝鮮全國八道僅剩平安道以北,靠近遼東半島的義州一帶未被日軍攻佔,換言之,朝鮮幾乎接近亡國。
明朝接獲朝鮮告急,萬曆帝與內閣、六部九卿商議後,一致認為:「倭寇之圖朝鮮,意實在中國,而我兵之救朝鮮實所以保中國」,遂答應讓李昖渡過鴨綠江尋求庇護,居住在遼東半島的寬奠堡,同時出兵援助朝鮮。
明軍初與日軍交戰,戰況並不理想,據祖承訓上呈給楊紹勳的報告,明軍面對著幾個困難:
1. 糧草不繼 - 朝鮮無法提供足夠的糧草給軍隊食用,做不到以戰養戰;
2. 情報不實 - 朝鮮方面指平壤只有千餘名日軍,實際交戰卻上萬人;
3. 指揮權不專 - 朝鮮群臣一直希望明軍能由朝鮮將領指揮,並且壓迫明軍在天時不利的情況下出兵。
4. 信賴不足 - 交戰時,數百名朝鮮軍潰逃,部份朝鮮軍與日軍有交談,致使明軍對朝鮮軍失去信任。
經過朝鮮使臣反覆申辯,楊紹勳總兵接受了朝鮮的解釋。不過,整體部署上已有所改變,放棄短期內平定朝鮮動亂的目標,而尋求長期作戰的可能。
明朝陸續向朝鮮增兵,十月十六日,李如松奉命總理薊、遼、保定、山東軍務,並充任防海御倭總兵官,其弟李如柏、李如梅為副總兵官,一同開赴朝鮮。
文祿二年 (1593 年) 初,明軍進抵平壤城下,與小西行長的軍團交戰。小西行長兵敗,日軍被殲滅者萬餘人,燒殺溺斃無數。主帥李如松憑此一戰,威名遠播明日朝三國。在收復平壤、開城之後,他開始進攻漢城。
據朝鮮史料記載:
在距城五里許,諸炮一時齊發,聲如天動,俄而花光燭天
倭銃之聲雖四面俱發,而聲聲各聞,天兵之炮如天崩地裂,犯之無不焦爛……
日軍火繩槍不敵明軍威力強大的火炮,是其戰敗的主因。
碧蹄館一役,李如松親兵死傷甚重。可是,日軍亦未能完全控制戰局。日軍轉攻幸州山城,為權慄以少數兵力大敗,石田三成、吉川廣家等負傷。李如松改變策略,焚燒日軍於龍山的糧倉,日軍缺糧,被逼由漢城撤退至釜山。