杜世忠一行人来到长门室津(今本州西南沿海山口县),希望能经过此处关卡到达京都或镰仓,但没料到当地守护却将杜世忠等人押送大宰府,然后上报幕府。北条时宗得知消息后,立刻命当地守护将元使送至镰仓。北条时宗见到杜世忠一干人后,既没有接受国书,也丝毫没有考虑其他后果,下令将杜世忠等30多人斩首于镰仓龙口。忽必烈派去的第二批使者也遭到同样的噩运。
1281年春天,也就是在征服南宋三年之后,忽必烈发动了第二次征日。由忻都、洪茶丘和金方庆统帅4万人为东路军,由范文虎统帅10万人为南路军,分别由高丽和宁波两地出发。这年6月,东路军兵船出现在博多湾海面,然而,忻都等将领看到的是沿海滩头筑有石坝的博多湾,在此处实施登陆困难很大,忻都派出小股部队,经过一番侦察,这才知道志贺岛和能古岛防御薄弱,未筑石坝,于是命令兵船靠近志贺岛下锚。因为这个原因,元军在无意间为日本军队防御赢得了整整一天的时间,而原本突袭博多湾的计划也变成了正面强攻。
6月7日,东路元军在志贺岛成功登陆,然而在向前推进时遭到了日本军队的顽强抵抗。在狭长地带,元军不能发挥其集团作战的优势,而日本军队一人一骑的战斗方式此时有了用武之地,因而元军伤亡很大。战斗进行了6天,元军始终没能前进一步。与此同时,由于长期在船上生活和战斗,蔬菜、饮水严重供应不足,伤者不能得到及时救治,死者不能安葬,疫病不断发生,天天有病死者。元军处境不妙,强攻博多湾的计划已无法实现。6月15日,东路元军撤离志贺岛,驶向壹歧岛,与范文虎的南路军会合。
两军会合后,士气大振,范文虎与忻都等相议,决定进攻太宰府。然而就在这时,一场突如其来的台风让两路人马顿时陷入了绝境。这场持续了两天的台风摧毁了元军大部分的船只,“士卒十丧六七”。而留在日本海岛上的3万元军群龙无首,除一部分被俘外,其余全都战死。
两次东征日本的失败并没有让忽必烈放弃征服日本的念头,1283年,这位成吉思汗的孙子下令建造船只并且广集粮草,准备第三次征伐日本。但是这一次遭到了江南人民的激烈反抗,只好暂时搁置。1285年,在平定了各地反元起义后,忽必烈再次下令打造战船,准备于次年春天出兵征日。但因大臣反对,忽必烈不得以下诏罢止征日。1294年正月,忽必烈去世,征日计划也就束之高阁了。
虽然由于所谓“神风”的显灵,日本阻止了元朝的进攻,但是两次战役也使镰仓幕府的军事力量和财政能力走向了衰落的边缘。而且幕府取得胜利后,无法从外来的敌人中获得象征征服的领地,故而无法对御家人进行赏赐,这引起了为赢得最终胜利而做出巨大牺牲的御家人的强烈不满,由此,御家人对幕府产生了极大的不信任。加之幕府实行武士遗产的分散继承制,很多御家人的土地越分越小,逐渐失去了生活来源,为生活所困,一些御家人典卖了自己的土地,有的甚至向高利贷借款。
为了维护幕府统治,也为了帮助生活困顿的御家人,1297年,镰仓幕府颁布了“德政令”,实施了一系列的措施。包括将典卖的土地无偿归还御家人,不予承认高利贷借条,将财产的分散继承改为由长子一人继承。这些旨在改善御家人生活的措施虽然暂时起了一些作用,但并没有从根本上解决御家人趋于贫困的问题,因为他们的收入并没有从根本上得到增加。由于新措施的实施,没有人敢买他们的土地,也没有人愿意借款给他们,实际上,御家人的生活并没有好转,而是更加贫困。幕府的统治能力和威信因此更加丧失,幕府面对着前所未有的统治危机。
与此同时,被称为“御内人”的北条氏嫡系御家人极力扩张自己的势力,这引发了被称为“外样”的一般御家人的强烈不满。北条时宗死后,“御内人”代表平赖纲和“外样”代表安达泰盛发生冲突,结果安达泰盛一族被全歼,史称“霜月骚动”。经过这一事件,作为镰仓幕府统治基础的御家人制度开始瓦解,镰仓幕府的统治岌岌可危。