洪武五年(1372),屡败屡战的王保保又一次从两年前的惨败中振作起来,再次率领大军侵犯北方。朱元璋对这个王保保是又爱又恨,爱是因为王保保确实是个人才,北元全靠他一人之力才能苟延残喘至今;恨是因为朱元璋非常想招降王保保,曾经写了无数书信,希望王保保能归降,结果王保保都不回信,铁了心要和明朝斗到底。现在王保保再次骚扰明朝的边境,朱元璋决定再次派徐达北伐,打到王保保心服口服为止。结果刘基站出来了,劝朱元璋,说不要这么贸然行事,王保保这个人非常狡猾,不是那么好对付的。朱元璋心意已决,听不进刘基的劝说,兵分三路,第一路让徐达从雁门北伐,第二路让李文忠从应昌北伐,第三路让冯胜从甘肃北伐。
徐达属于中间一路,这次徐达挑选的先锋是蓝玉,蓝玉是常遇春的妻弟,以前一直在常遇春帐下,每次打仗都是英勇奋战,所向披靡,不过光彩都被常遇春盖住了,没什么名气。这次徐达让蓝玉当先锋官,在外人看来,应该是徐达和常遇春关系好,故意照顾他的妻弟的,因为王保保曾经被徐达打败过两次,两次都是全军覆没,这次自然也和上次一样,肯定又是大胜,所以让常遇春的妻弟当先锋,可以露露脸,立点功劳。面对猜疑,蓝玉没有什么表示,他会用自己的行动来证明自己的,在未来的十几年内,他建立的功绩丝毫不比常遇春差,他将会成为北元的噩梦。
三月,徐达率领的明军和元军遭遇,身为先锋的蓝玉一马当先,在野马川这个地方击败元军,之后又在土剌河这个地方击败元军。连续两次胜利,让徐达这个常胜将军也有点大意了,胜利面前,徐达做出了错误的判断,他认为元军已经不堪一击了,一见到明军就会崩溃。徐达决定直捣北元现在的国都和林,如果能攻下和林,将会重创北元,于是下令全军加速北进。明军朝着和林一路奔进,孤军深入,一直攻到岭北(今蒙古国境内),这时候意外出现了,忽然从四方冒出了无数的元军,而这些元军见了明军非但没有奔逃,反而像见了猎物一样蜂拥而上,见了明军就砍。这正是王保保等候多时的大军,他早已埋伏在这里等着徐达。明军身处大漠之中,突遭袭击,纵然徐达沉着指挥,还是遭遇了前所未有的大败,死了数万人,明军拼死抵抗,才得以撤退。
东路军的李文忠同样不太顺利,李文忠打仗的特点和常遇春一样,奔袭如风,善于快速克敌,这次为了能够快速行军,李文忠把所有的辎重都留下来,让明军每人只带二十天的干粮急行军。明军在急行军途中遭遇北元太师蛮子哈剌章的大军,双方展开激烈血战,宣宁侯曹良臣以及指挥使周显、常荣、张耀都战死了,李文忠自己的战马也被箭射中,只能短兵步战,部将李荣将战马给李文忠骑,自己又去夺了元军一匹马。李文忠重获战马后,率领明军殊死搏斗,终于大破敌军,不过这一战打得太惨烈,双方都死了万余人。
西路军的主将是征西将军冯胜,副将是陈德和傅友德,陈德还好,傅友德是刚刚平蜀回来的猛将,他在汤和连攻瞿塘峡不下的情况下,率兵从陕西入蜀,一路势如破竹,直接拿下成都,汤和才得以攻下重庆。朱元璋制《平蜀文》,盛赞傅友德,说平定四川,傅友德的功劳第一。
冯胜让傅友德当先锋,傅友德没让冯胜看走眼,继续发扬平蜀的精神,在其他两路北伐大军一个大败、一个不胜不败的情况下,创造了奇迹。先是率领骑兵在西凉大败元将失剌罕,接着在永昌大败北元太尉朵儿只巴,缴获马牛羊十几万头,然后射杀北元平章不花,又迫使元将卜颜帖木儿投降。
明军这次北伐,只有冯胜的西路军,在傅友德发疯一样的闪击中大获全胜,其他两路大军损失都非常大。朱元璋想起刘基战前说的话,非常悲痛,告诫自己的儿子晋王朱棡用兵应当谨慎,不能像这次一样,草率地孤军深入,导致数万将士战死沙场。经历这次北伐的惨败,朱元璋在之后的好几年都没有再大举北伐,但是招降王保保的心还是不死,派元朝降将李思齐去招降王保保,李思齐是王保保舅舅察罕帖木儿的战友,但是曾经和王保保互相攻打好多次。王保保见了李思齐,待之以礼,就是不投降明朝。李思齐见说服不了王保保,只好回去,在回去的路上,被王保保派来的骑士追上,骑士说既然来了就留下一样东西吧,李思齐说我远道而来没有带礼物,骑士说留下一条胳膊就行了,李思齐知道不能幸免,砍下自己一条胳膊送给了骑兵,李思齐回来没多久就因为受伤太重死了。王保保确实够狠、够奇。
王保保越是不投降,朱元璋越是器重他,为了拉拢王保保,朱元璋把王保保的妹妹(就是赵敏,明军攻下河南的时候,成为俘虏)嫁给自己儿子秦王朱樉。有一次朱元璋大会众将,问谁是天下奇男子,结果所有的人都说常遇春是,因为常遇春可以带领不到一万人,横行天下,无人能敌。朱元璋听了大笑,说常遇春虽然是人杰,但是终究为我所用,而王保保始终不肯臣服于我,他才是真正的奇男子。
洪武八年(1375),王保保病死于遥远的哈剌那海,这个屡败却屡战、无穷无尽地骚扰北方、让明军伤透脑筋的奇男子终于死了,他出生在元朝摇摇欲坠之时,明知道大厦将倾,却凭借一己之力让这个王朝又延续了几十年。