从徐达大军取元大都。后晋升山西行省平章，守通州。当时元朝发兵万人进攻山西，当时通州守兵不足千人。曹良臣说，“我们部队少，不可与其对战。对方虽然多，但是亡国之徒，气势不振，应当用计谋逼走他们。”于是偷偷派部队在河中立红旗，远近三十余里，并敲鼓相应。当时元将也速看后大惊，于是逃跑。曹良臣又派精兵追赶其百余里，元兵此后不再敢窥视北平。后跟随徐达在定西大败扩廓帖木儿。洪武三年，封宣宁侯。次年进攻四川，攻破归州山寨，接连进攻各路叛乱，直取重庆。再一年，跟随李文忠北征，后与元将哈剌章大战而死。后赐安国公，谥忠壮，列