此時日軍人數雖然大大超過元軍,但是如何指揮這些平時互不統屬的武士們協同作戰,成了擺在鐮倉幕府麵前的一道難題。而元軍沒有給幕府解決難題的時間。
忻都首先派人射箭書入京都,諭令日本軍民投降,可照大阪例,免於屠城,並保全日本朝廷。北條時宗拒絕了,同樣令人以箭書射入元營,上書“降者免死”,隨後便率大軍出城,直撲元營。
北條時宗所率日本武士部隊約五萬人,騎兵約有五千,其餘皆為步卒,此次進攻一改以前的“一騎討”作戰方式,而是象元軍一樣的發動了集團衝鋒。元軍仍是先施放火炮轟擊日軍,繼以弩箭,然後以騎兵發動衝擊。日軍在元軍猛烈的炮火轟擊下死傷累累,衝近的日本武士也大都給弩箭射成了刺蝟,日本武士雖然有精良的刀具,但除了一些將領有好的鎧甲防護外,大多數下級武士隻有簡陋的鎧甲,因而死傷慘重,五萬大軍在元軍的攻擊下很快崩潰,北條時宗在戰鬥中也被元軍炮火擊傷,“鐵片洞其鎧甲,肩臂皆穿”,鮮血將他的鎧甲染紅,元軍騎兵望見其衣甲鮮亮,知其為大將,蜂擁而來,欲擒獲之,千鈞一發之際,一名叫竹崎季長的武士策馬趕到,將北條時宗拖出了交戰區域,方才免於其被元軍擒捉的下場。
北條時宗率殘兵退入京都,據城防守。在擊潰日軍之後,元軍並沒有急於攻城,而是追擊潰散的日本武士,將其盡數斬殺,一時間京都城下屍如山積,登城了望敵情的北條時宗見狀,驚怒交集,口噴鮮血,暈厥過去,後為皇派來的禦醫救醒。
徹底消滅城外日軍之後,元軍開始攻城,和以往不同的是,元軍此次沒有強行架設雲梯爬城,而是集中火炮轟擊城池。城牆上的日本人目瞪口呆的發現,元軍的陣列當中架起了一門巨大的火炮。
日本人不知道的是,這門大炮並非蒙古人鑄造,而是宋朝的工匠鑄造的,它有著一個特別的名字:“襄陽神炮”。
當年在襄樊之戰中曾給蒙古人以沉重打擊的宋人神器,現在出現在了元軍的陣列裏。這門大炮連同其彈藥,是蒙古人花了高價,從宋人那裏偷偷買來的,原本忽必烈打算好好研究它並進行複製,在得知日本前線軍情之後,忽必烈派人用船將它運給了忻都,“助其成功。”
在占領九州之後,這門大炮隨同運送糧草軍械的船隊來到了日本,但由於其巨大而笨重,難以移動,忻都一開始並沒有打算使用它,從占領九州到進攻四國島,它一直都被放在船上,直到京都之戰時,看到京都高大堅厚的城牆,忻都才想起了它,命人將其從船上卸下,運往京都前線。