日本側は、少弐経資の弟景資を総大将として、九州の武士を沿岸に配備し、各地で激戦が展開された。日本軍は一〇〇年近い太平になれ、戦闘の経験に乏しいうえに、蒙古軍の戦なれと勝手違った戦法に苦戦した。すなわち、長槍を使う徒歩の集団戦法、短弓の速射・正確さ・飛距離・毒矢が、日本の一騎駆け、長弓の威力を圧倒し、「てっぽう」の爆発音に驚愕(きょうがく)して戦意を阻喪(そそう)した。
夕刻には、日本軍は戦い疲れて、大宰府へ撤退した。勇敢に戦った将兵の中でも、少弐景資の活躍は群を抜いて、敵将劉復亨を倒した。
翌朝、日本軍が博多に出てみると、異国の船影はなかった。前夜の大風雨で、海上の敵船に損害が出て、撤退を決したのだという。旧暦の十月二十日は、太陽暦だと十二月初旬にあたる。このころの強風は旋風(つむじかぜ)といわれる寒波で、風速二〇メートルに近い風が吹くことがあるから、そういう季節に元軍が襲来したということである。
元軍撤退の原因は、元軍に数倍する兵員の勇敢な戦いぶりを見て、戦力の不足を感じ取ったこと、強い逆風をついて漕ぎ帰ることの困難さを考慮してのことであろう。文永の役の蒙古側の損害は一万三五〇〇人という。
元軍退去のあと、幕府は九州各国の武士に、動員可能な兵員・武器・船数を注進させて、高麗遠征の準備を命じ、渡海しない武士には、筑前・肥前沿岸の石築地や乱杭(くい)の工事を命じた。建治元年(一二七五)には、蒙古襲来に備えての警固番役を九州諸国が分担する制規を定めた(第2図参照)。
また、次の戦闘の指揮官として、鎌倉から北条時定(為時)を派遣し、肥前の守護職を与え、武士の統制を強化した。