十一月,元军经过修整后,在九州当地征收足了行军用的粮草,又从高丽来的船队补充了弹药,一切准备完毕,于二十日乘船出发,进攻四国岛。
为了防备元军来袭,在幕府的严令下,日本武士们在沿海一带修筑了大量称为“元寇防垒”的石垒,并守卫于垒后。元军舰队到达四国的宇和海岸后,发现了这一情况,先集中战船上的火炮向石垒轰击,由于元军炮火凶猛,石垒多被击破,守卫石垒的日本武士死伤惨重,看到元军登陆,日本武士部队向元军发起了冲锋,但很快便倒在元军射出的密集箭雨之下。经过两天的战斗,日本人苦心修筑的“元寇防垒”被元军突破,守军大都被歼灭,仅有少数人侥幸逃脱。
在进攻宇和的同时,另一支元军舰队驶入土佐湾,元军登陆后攻克高知城,然后与从宇和前来的元军会师,扫荡日军,七日后,元军成功占领四国岛全境。
占领四国之后,忻都马不停蹄的继续发动进攻,他决心不给日本人以喘息之机,率元军舰队直扑大阪湾,攻占大阪后直取京都。
北条时宗判断出了元军的进攻方向,紧急召集各地的御家人前往大阪助守,各地武士得令后日夜兼程赶往大阪,人数约有五万人左右,可谓空前绝后,但在这些武士到达大阪时,大阪已然陷落。原来在得知蒙古人会对不投降的城市进行屠杀后,大阪的商人们不愿于这座繁华的商业都市就此毁灭,由几大家族牵头,秘密和元军接触,表达了投降保全城市的意愿,忻都同意了大阪商人们的请求,保证不屠城,不掳掠,保护城内居民的生命财产安全。于是大阪商人们的武装偷偷打开城门,接应元军入城,并将守城的日本武士部队约七千人尽行杀死,是为“大阪无血开城”事件。
元军进入大阪后,忻都兑现了诺言,对城内居民秋毫无犯,征集粮秣物资也都“尽给其值”,被称为“佛兵”。不甘心投降的一些日本武士对元军发起自杀式的攻击,大都被杀,大阪城守草井友长及其部下三十二人战败后退入佛寺内,切腹自尽。
大阪陷落后,日本武士们纷纷云集京都,加入到城防守军当中,陆续到来的日本武士加上原来的京都守军,人数很快超过了十万人。执权北条时宗也亲自到京都指挥防御,并刺血明誓,要在京都全歼元军。
凭借与元军对峙的契机,镰仓幕府再次强化了自己的权力。十二月八日,幕府命令各国原本上贡朝廷的国衙领和本所一元领出产的米粮充当战争军需,早先颁布的关于寺社本所一元地效忠朝廷的官兵必须在武家的指挥下参与抗元战争的命令也被朝廷所正式承认。这样一来,原本由朝廷任命的国司所掌握的抗战权力彻底为武家政权所取代,朝廷唯一可以做的就只剩下在诸国的神社、国分寺举行敌国降伏的祈祷。武家幕府的权力自此超越了公家朝廷,成为日本列岛的唯一统治者。
此时日军人数虽然大大超过元军,但是如何指挥这些平时互不统属的武士们协同作战,成了摆在镰仓幕府面前的一道难题。而元军没有给幕府解决难题的时间。
忻都首先派人射箭书入京都,谕令日本军民投降,可照大阪例,免于屠城,并保全日本朝廷。北条时宗拒绝了,同样令人以箭书射入元营,上书“降者免死”,随后便率大军出城,直扑元营。
北条时宗所率日本武士部队约五万人,骑兵约有五千,其余皆为步卒,此次进攻一改以前的“一骑讨”作战方式,而是象元军一样的发动了集团冲锋。元军仍是先施放火炮轰击日军,继以弩箭,然后以骑兵发动冲击。日军在元军猛烈的炮火轰击下死伤累累,冲近的日本武士也大都给弩箭射成了刺猬,日本武士虽然有精良的刀具,但除了一些将领有好的铠甲防护外,大多数下级武士只有简陋的铠甲,因而死伤惨重,五万大军在元军的攻击下很快崩溃,北条时宗在战斗中也被元军炮火击伤,“铁片洞其铠甲,肩臂皆穿”,鲜血将他的铠甲染红,元军骑兵望见其衣甲鲜亮,知其为大将,蜂拥而来,欲擒获之,千钧一发之际,一名叫竹崎季长的武士策马赶到,将北条时宗拖出了交战区域,方才免于其被元军擒捉的下场。
北条时宗率残兵退入京都,据城防守。在击溃日军之后,元军并没有急于攻城,而是追击溃散的日本武士,将其尽数斩杀,一时间京都城下尸如山积,登城了望敌情的北条时宗见状,惊怒交集,口喷鲜血,晕厥过去,后为天皇派来的御医救醒。
彻底消灭城外日军之后,元军开始攻城,和以往不同的是,元军此次没有强行架设云梯爬城,而是集中火炮轰击城池。城墙上的日本人目瞪口呆的发现,元军的阵列当中架起了一门巨大的火炮。
日本人不知道的是,这门大炮并非蒙古人铸造,而是宋朝的工匠铸造的,它有着一个特别的名字:“襄阳神炮”。
当年在襄樊之战中曾给蒙古人以沉重打击的宋人神器,现在出现在了元军的阵列里。这门大炮连同其弹药,是蒙古人花了高价,从宋人那里偷偷买来的,原本忽必烈打算好好研究它并进行复制,在得知日本前线军情之后,忽必烈派人用船将它运给了忻都,“助其成功。”
在占领九州之后,这门大炮随同运送粮草军械的船队来到了日本,但由于其巨大而笨重,难以移动,忻都一开始并没有打算使用它,