在少数民族问题上,刘恒和平解决了南粤问题。秦始皇时略定南方土地,设置了桂林郡(治所在今广西桂平)、南海郡(治番禺,即广东市)、象郡(治临尘,即广西崇左)。秦末农民起义之际,南海郡尉赵佗乘机扩大势力。听到秦朝灭亡,就合并桂林、象郡,自立为南越武王。汉初,刘邦无力远征,派使者立赵佗为南粤王,要他在当地和辑粤族各部,与汉朝通使,不要扰乱附近各郡。吕后时期,认为南粤是蛮夷禁止卖给铁器,马、牛、羊只卖牡、不卖牝,不使其繁殖。赵佗与吕后当政的汉朝中央政权关系一度紧张,汉朝与南粤的矛盾激化。吕后随即派遣大将隆虑侯周灶等前去攻打赵佗,但由于中原的士兵不适应南方一带炎热和潮湿的气候,纷纷得病,连南岭都没有越过。赵佗本是真定(今石家庄市东北)人,虽去南海已49年,不忘家乡。他听说先人坟墓已被破坏,亲族兄弟被杀,更为恼火,发书要求汉朝撤离长沙郡的驻军,给他送去亲族兄弟。刘恒下令修复了赵佗先人的坟墓,派人慰问了他在真定的亲人,他把赵佗的亲族兄弟召来,给以尊贵的地位。然后派使者持诏书和礼物前往告谕赵佗,只要削去帝号,不再扰乱附近郡国,则承认他为南粤王,允许他自治,与汉朝通使往来。赵佗削去了帝号,重又称臣归服了汉朝。
刘恒对北方匈奴采取和亲与防御政策并重的原则,秉持“匈奴无入塞,汉无出塞”的基本原则,确保了边塞地区的安定。汉文帝采纳了晁错“徙民实边”的建议,招募内地居民迁往边塞,为提供生活、生产条件,亦兵亦农,世代居住,形成防御力量。
汉文帝前元六年(公元前174年),冒顿单于死,其子稽粥即位,号老上单于。汉文帝前元十四年(公元前166年)冬,老上单于亲率14万大军入北地郡(辖境在宁夏贺兰山、青铜峡、苦水河以东及甘肃环江、马莲河流域,治所马领,即甘肃省庆阳西北),进占朝那(今甘肃平凉西北)、萧关(今甘肃固原东南)、彭阳(今甘肃镇原东南),烧毁中宫(秦宫,故址在今甘肃固原),前锋直抵岐州雍(今宝鸡凤翔)、甘泉(今陕西淳化西北),距长安仅200里,直接威胁西汉王朝的统治中心。汉文帝刘恒得报,立即命中尉周谷、郎中令张武为将军,发车千乘,骑十万,屯驻长安附近,防卫京师;又拜昌侯卢卿为上郡将军,宁侯魏遫为北地将军,隆虑侯周灶为陇西将军,东阳侯张相如为大将军,成侯董赤为前将军,大发上郡、北地、陇西等处兵马车骑迎击匈奴,苦战月余,老上单于退出塞外,而汉军逐出塞外即还,不能有所杀。
汉文帝后元四年(公元前160年),老上稽粥单于死,其子军臣立为单于,仍以中行说为亲信,积极准备攻汉。中行说是西汉时文帝时人,战略大师,原为宫廷太监。后来因为汉文帝强迫中行说陪送公主到匈奴和亲,中行说对汉王朝怀恨在心,转而投靠匈奴,成为单于的谋主。
汉文帝后元六年(公元前158年),军臣单于绝和亲之约,对汉发动战争。他以六万骑兵, 分两路,每路三万骑,分别侵入上郡及云中郡(辖境相当于今内蒙古中部,即,土默符右旗以东,大青山以南,卓资以西,黄河南岸及长城以北。治在云中,即今内蒙古呼和浩特市西南),杀掠甚众。刘恒急忙以中大夫令勉为车骑将军,率军进驻飞狐(飞孤口。古时险要的关口。今河北涞源县北);以原楚相苏意为将军,将兵入代地,进驻句注(句注山。在今山西代县西);又派将军张武屯兵北地,同时,置三将军,命河内守驻屯细柳(地名,在今陕西咸阳市西南),祝兹侯徐悍驻棘门(地名,在今西安市北),宗正刘礼驻霸上(地名,在今陕西西安市东),保卫长安。此时,匈奴骑兵已进至代地句注边,边境烽火警报连连告急,汉军经数月调动,方抵边境地区。匈奴见汉军加强了守备,遂退出塞外。汉军也罢兵撤警。