西軍後來成為戰鬥的主力。同時九州各藩開始動員民兵,日本其他地區的武士也趕來參戰。
公元一千二百八十一年,元帝國龐大的遠征軍由江浙和朝鮮兩地同時出發。此次出征的軍容十分壯觀,共有大小船隻近五千艘,軍隊約二十萬,其中蒙古人四萬五千人,高麗人五萬多,漢人約十萬,其中漢人大半為新附軍(收編的南宋軍),遠征軍中蒙古人自然是作戰的中堅力量。
北方出海的艦隊於五月底如日本人所料抵達博多灣,在等待南方艦隊期間,蒙古人輕而易舉的攻佔了博多灣的幾個島嶼,一如既往的將島上的居民全部屠殺,島上的建築物也被他們全部焚燬。
六月上旬,南方艦隊抵達,兩支龐大的艦隊在九州外海匯合,之後元軍開始登陸作戰,登陸地點九龍山距上次戰爭主力部隊登陸的地點不遠。
這一次,元朝遠征軍遭遇到了更加頑強,更加有效的抵抗,日本軍隊以石牆為掩護,不斷擊退元朝的進攻,還伺機組織反衝鋒。
日本人最成功的一次反擊擊潰了高麗軍主力,高麗軍統帥兼東征大軍副統帥,已經入侵過一次日本的洪茶丘被俘殺,幾名蒙古高階軍官也相繼陣亡。
激烈的戰鬥持續了一個多月,遠征軍的損失已經超過三分之一,但依然不能突破石牆。到七月下旬,元軍的糧草和箭矢都已告罄,此時無論蒙古人還是日本人大概都以為這次戰爭的結局會和上次相同,以元軍的撤退收場。
然而八月一日,太平洋上突然颳起了猛烈的颶風,風暴持續四天,元軍南方艦隊的艦船基本被毀,北方艦隊的艦船也損失大半。北方艦隊剩餘的艦船搭在著指揮官以及部分蒙古軍和高麗軍十分不厚道的逃離戰場,返回高麗。南方軍的指揮官和部分高階官員眼看回天無術,也不願意做炮灰,只能丟下大部隊,乘南方艦隊殘存的幾艘船逃離戰場。
此時九龍山的海灘上還留有近十萬元軍,這些人眼看著操蛋的軍官拋下他們而去,呼喊罵娘都不頂用,每個人都陷入了一種深深的絕望之中。他們既無力突破日本的防線,又失去了退路和補給,只等待在沙灘上等死。
三天後,日本開始反攻,將已經餓得半死的殘存的元軍趕到一個叫八角島的狹窄地區,然後縱兵攻擊。
元軍大部分被殺,剩餘想兩萬多人作了俘虜。日本人將除了南方漢人以外的蒙古人、女真人、高麗人、色目人以及北方漢人全都處死,將南方漢人貶為奴隸。
今天的博多灣還有一座名為“元冠”的小山,據說是當年元軍將士的集體墓地。
在這次慘敗中,南方軍只要三名士兵逃脫,他們拼湊了一條小船,幸運的漂回中國。忽必烈透過這三位倖存者終於知道了戰敗的真相。此次戰爭的副統帥漢將范文虎被當作替罪羊斬首,其他官員也受到不同程度的懲罰。
日本人稱第二次蒙古入侵為“弘安之役”,此次戰爭日本投入的軍隊無論質量還是數量都遠勝前一次,蒙古人在戰術上沒有絲毫的優勢。
根據日本人戰後的總結,蒙古人的戰鬥力並沒有想象的那麼強大,日本武士在各方面都勝過他們,尤其是在裝備和戰技方面。日本人的裝備優勢不僅在於戰刀,也在於武士的鐵甲,據說只要距離稍遠,蒙古人的弓箭就無法射穿。
日本的武士完全脫產,自小就開始接受嚴格的軍事訓練,可以說是除了殺人什麼都不會幹,他們的戰技勝過蒙古人並不奇怪。蒙古人的記載裡也稱他們擅長單打獨鬥,可以和日本人的說法完全互相印證。
由此可見,日本人打敗兩次蒙古入侵不完全靠的是運氣,主要還是靠的他們的武士階層,這個階層的日本人從小接受殺人訓練,武藝高強,而且社會地位很高,有豐厚的收入,可以負擔的起精良的武器裝備,是日本軍隊的主力,