公元2世纪后期,由于西北羌人的不断反抗,汉朝对西北地区的控制越来越弱,不少政区不得不撤销或者撤到内地。北方的鲜卑逐渐南侵,移居入塞的南匈奴人也在扩大活动的范围。到了灵帝光和七年(公元184年)黄巾起义爆发,东汉再也无暇顾及边疆,朔方、上郡、北地、定襄、云中、五原六郡完全放弃,上谷、代、雁门、西河、安定等郡也都放弃了一部分,大致退到了今桑干河、吕梁山、黄河和六盘山一线。这一线以北被称为“羌胡”所有,实际上是由匈奴、鲜卑、羌等多种民族聚居或杂居,留在那里的汉人也有一定的数量,这种状况一直延续到西晋末年。
在整个十六国和北朝期间,尽管北方经常处于战乱之中,疆域很不稳定,但由于原来居住在边疆的非汉族先后占有黄河流域的全部或一部分,它们把中原王朝的疆域和自己的根据地连成一片,有的还并吞了其他北方民族,因此中原政权管辖的范围比东汉后期、三国和西晋时反而有所扩大。例如前燕并吞了鲜卑的宇文部,北部边境增加了今老哈河流域,基本恢复了西汉的旧地。在北魏统一了北方以后,到523年六镇起义以前,它的北界不仅大体与秦汉时相同,阴山一带还达到了更北,控制了阴山北麓。
东汉后期对西域的控制一度中止,此后西域长史府也时置时废。但由于中原与西域长期的交往,中原人民在西域的长期经营,西域与中原的联系并没有断绝。不仅如此,西北的地方政权还第一次在西域设置了正式行政区。327年,张氏前凉设置高昌郡,辖有今新疆吐鲁番盆地东部哈拉和卓以东一带。此后历经前秦、后凉、西凉,直到439年北凉为北魏所灭。西域的第一个郡建在吐鲁番盆地,这绝不是偶然的。这里是通向西域的孔道,一直是中原王朝经营的要地,西汉以来的戊已校尉都常驻于此,大批汉人迁来开垦,农业已有相当良好的基础。因而在北凉被灭后,高昌郡地还有可能成为一个独立的高昌国长期存在,直到640年才灭于唐。
东汉在朝鲜半岛上的乐浪郡,到后期只控制了北部,南部的几个县已由当地民族占据。但到建安年间(公元196—219年),地方割据势力公孙氏政权恢复了对南部的统治,并新设置了一个带方郡。公孙氏与以后的魏、西晋还基本上控制了今朝鲜北部北大峰山脉以东的地区。
高句丽于209年迁都丸都城(今吉林集安市境内)后,日益强大,逐渐向南扩张,终于在西晋末(公元313年)完全占领了乐浪郡。差不多与此同时,带方郡也被南方的马韩吞并。中原王朝在朝鲜半岛设置正式行政机构400多年的历史就此结束了。高句丽继续向西侵夺先后属于前燕、后燕的辽东、玄菟二郡,经过多次争夺,在404年取得了辽河以东之地。427年,高句丽迁都今朝鲜平壤,这标志着高句丽已经成为中国之外的独立国家了。
十六国时期,聚居于湟水流域和黄河上游的吐谷浑兴起,向南扩张到今四川松潘县一带。以后吐谷浑受挫退出,羌人进入今甘南、川北。到北周时又驱逐了这里的羌人,设置了宕昌郡。这也是中原政权在当地首次设立正式行政区。
东晋以后,南方先后建立宋、齐、梁、陈四个政权。这些政权的都城都设在建康(今江苏南京市,即原建业,因避晋愍帝讳而改),仅梁元帝时(公元552—555年)有不到三年的时间迁都于江陵。与北方中原政权的局部扩张相反,南方汉族政权的疆域始终是在收缩的。
西南少数民族聚居的地区虽然在汉武帝时已设置郡县,但中央政权的行政控制往往只限于政区治所周围和交通线沿线。三国时蜀国的诸葛亮曾大力开发,实际控制区有所扩大,但到西晋时一些政区已经名存实亡。由于东晋和南朝一直忙于防御北方和对付内部的权力之争,顾不上西南边区的经营和开发;加上地方官治理不当,甚至残酷压迫当地民族,规模不等的反抗时有发生。不过直到南朝中期为止,设在今云南和贵州西部的宁州名义上始终存在,并由朝廷派遣官员。太清二年(公元548年)侯景之乱爆发,宁州刺史奉命救援京师,离开治所。当地爨〔cuan窜〕蛮的豪族乘机而起,在550年脱离了梁朝。在宁州爨蛮影响下,周围的部族纷纷自立,因此在今四川长江和大渡河以南、湖南西部、广西西部已经不再有南朝的郡县存在。
汉朝疆域最南端的是日南郡象林县。在公元192年(一说在公元137年),当地人区逵建立了林邑国,脱离了汉朝,因而汉朝的南疆从北纬13°退到了北纬16°一线。三国时期(公元220—265年),林邑又向北扩张,并吞了西卷县,推进到北纬17°。大约在南朝后期,林邑又占了原日南郡剩下的三个县,南朝疆域的南界退到了北纬18°一线。