19日,元军在筑前国的博多港(位于今福冈县福冈市)进逼今津,次日即发生了博多港之战。虽然元军在兵器和战术上占优,但他们的人数远远少于准备了很久的日本武士,而且这些武士在得知对马、壹岐失陷后得到了增援。此外,元军登陆地点地形不利于大部队展开,且距当时的九州首府大宰府尚有一日行程,于是在坚持了一整天之后,元军于当晚撤回船上,准备次日清晨重新登陆发动进攻。
二十日晨(11月26日),元军分二路在博多登陆。幕府聚集了由少贰资景、大友赖泰、菊池武房、岛津久经、竹崎季长等统率的九州诸国部队总数约十万迎战。元军西路军在百道原登陆,藤原经资率500骑前来迎战元军,元军东路军在博多湾东部的博多箱崎郡成功登陆,击败守军,占领岸边松林,从背后突袭在百道原同元军作战的日军。日军腹背受敌,死伤惨重,余部向太宰府水城(日本于白江口之役战败后修筑的一座水坝兼防御工事)方向撤退。
此时天色已晚,副帅刘复亨中箭受伤,元军停止进攻。当晚,元军召开军议,由于后援不足,多数将领主张撤退(金方庆反对)。于是忻都下令撤退,撤退当晚竟遭到台风侵袭,"会夜大风雨,战舰触岩崖多败",二十一日晨海面上只剩下一些破碎的木片,元军损失1.3万余人,大多死于这场风暴。最后辗转回到中国的只剩下1万3千500人。而高丽军统帅金方庆则虏了两百名日本人,献给高丽王作为奴隶。
抵御元军侵略的防御工事的遗址,位于今日日本九州福冈县福冈市博多区筥松。这个遗址本来在海岸边,但今日已离开海岸很远。文永之役后,镰仓幕府为防元军再犯,沿博多湾海岸西从今津东至香椎,修造了约20公里的石垒,以阻止元军登陆,即所谓元寇防垒。
第二次元日战争(弘安之役)
第一次攻打日本失败后,高丽国王多次与元朝谈判,反对进一步的侵略日本计划。而元朝也派遣使者至日本,但日本两次下令将元朝钦差杜世忠等人斩首;忽必烈非常恼火,开始积极筹划第二次进攻。
1279年,元军征服南宋之后,忽必烈于1281年(元至元十八年,日本后宇多天皇弘安四年)春发动了对日本的第二次侵略。元军的这次侵略规模大于第一次,东路军由忻都、洪茶丘率领蒙古人及女真、契丹(金朝降军见汉人(元))士兵19,000人,金方庆统高丽军10,000人,乘战舰900艘,加上高丽水手17,000人,携军粮10万石,由高丽出发;另由范文虎、李庭等人率领的蛮军(指南宋降军)十万人,乘战船三千五百艘,从庆元、定海(今浙江省宁波市)出发;两军约定于6月会合,东路军负责作战,江南军则在占领区屯田,生产米粮,以为长久之计。
自1275年起,幕府就开始积极为可能的元军第二次侵略做了准备,除了改进弓箭,使与蒙古强弓不相上下,同时更完备地组织起九州的武士外,幕府还在很多元军可能登陆的地点修建堡垒和其它防御工事;北条时宗下令在日本沿岸所有重要地区都建起了"元寇防垒",这时起了重大防卫作用--元军的战舰在到达日本近海时,竟找不到登陆的地点,只得以泊于博多湾中的舰船为阵地长达一个月。
这段期间,元军发动几次强行登陆作战均告失败,并且一直遭到河野通直(河野党)等人的袭扰(也受海贼草野党偷袭),直到七月初,南北两军在九州外海会合。元军会师后再度发动登陆作战,这次远征军遇到了更顽强更有效的抵抗,日军以石墙为掩护,不断击退元军的进攻,许多蒙古军将领相继阵亡,战斗又持续了一个多月,元军的损失惨重,依然不能突破石墙。
元军舰队因供应和人员登载问题而推迟了起航。高丽军先行进发,在对马岛惨遭失败而返。同年夏,元军联合朝鲜军队夺取了壹岐岛,向九州进发,并在不同地点登陆。在经历一些独立的小战斗后,元军被赶回了船上。此时一场持续两天的台风袭击了元军舰队,并摧毁了大部分的船只。
八月一日(7月30日),元军再次遭到台风的袭击,风暴持续四天,军舰大部分沉没,范文虎落水被张禧救起;范文虎乃擅自决定班师。平户岛尚有被救起的士卒四千余人无船可乘,张禧将船上的七十五匹战马弃于岛上,载四千士卒回国。
被遗弃在日本九龙山的海滩上的元军尚有三万余人,日本发动反攻,将残存的元军驱赶至一处名为八角岛的狭窄地区;这些元军大部分战死,其余数万士兵被俘。日本方面将蒙古人、色目人、高丽人、契丹人、女真人以及原金朝统治下之汉人全部挑出斩首,其余汉族(蒙古人称之为"南人",日本人称之为"唐人")则成为奴隶。
总计元朝第二次攻打日本的军队,只有不到十分之一生还。有3名士兵拼凑小船,逃回中国;通过这3名士兵,忽必烈知道真相后大怒,将范文虎革职。




















