至正二十年(1360年)五月,陈友谅率水军数十万直取应天,在南京城西北的龙湾与朱元璋军展开一场恶战。
至正二十三年(1363年),陈友谅以号称六十万大军倾巢来攻,在鄱阳湖与朱元璋军进行了一场持续三十六天的决定生死存亡的水上大决战。朱元璋先是派兵封锁敌人的归路,交战中,陈友谅军船大、坚固,但速度慢,朱元璋军船小、速度快,操作灵活,两军相持,难解难分。
至正二十四年(1364年)七月,常遇春先是随徐达率军攻占庐州。接着,又与邓愈会合征服江西的新淦、吉安、赣州、南安等郡县,岭南韶州、南雄等地望风降附。
至正二十五年(1365年)五月,常遇春又奉命与邓愈率军攻取湖北的安陆、襄阳;十一月与徐达率军攻占了泰州。
至正二十六年(1366年)八月,朱元璋以徐达为大将军,常遇春为副将军,率兵二十万东征张士诚。按照朱元璋的部署,徐达、常遇春的军队先攻取了湖州和杭州等地,翦除了张士诚的羽翼,平江(今苏州)孤立无援,经过长达十个月的围攻,平江城破,张士诚败死。常遇春以功进封为鄂国公。
至正二十七年(1367年)十月,朱元璋以徐达为征虏大将军,常遇春为征虏副将军,率二十五万大军出师北伐。当时北方元朝军事力量已经大大削弱,所以,徐达、常遇春出师三个多月,即平定山东。洪武元年四月,明军在洛阳的塔儿湾与元军遭遇,常遇春单骑突入敌阵,麾下壮士从之,勇猛冲杀,在洛水之北击溃元军五万,俘获无算,史称塔儿湾大捷。这一仗,占领了河南和潼关,夺取了陕西的门槛,为攻取元大都创造了极为有利的形势。
洪武元年(1368年)闰七月,徐达、常遇春率马步舟师由临清沿运河北上,连下德州、通州。元顺帝携后妃、太子等逃奔上都开平(在今内蒙古正蓝旗东)。八月二日,徐达、常遇春一举攻占大都,改为北平府。稍事休整即又挥军西进,攻取山西。与精锐的扩廓帖木儿军进行了艰苦的搏战,平定山西。
洪武二年(1369年)七月七日(8月9日),常遇春自开平率师南归,行至柳河川,突然病逝,年仅四十岁。朱元璋闻丧大为震悼,赐葬钟山之下,并亲自出奠。