东汉设城置县。
西乡最早的县名叫南乡县。三国时(公元221年)从当时的城固县分出,因为在城固的南边,所以叫南乡县,辖地包括现在的西乡和镇巴。公元221年(蜀汉昭烈帝章武元年),张飞被刘备封为西乡侯。因为他的家乡涿郡西乡(今北京房山一带)在曹魏统治下,由于扬名乡里是封建社会封爵的惯例,所以刘备借地封侯,以原籍之名,寄食采地于南乡。晋太康二年(公元281),晋武帝因张飞曾封西乡侯于此,故改南乡县为西乡县。
东汉:因班超平定西域有功,封定远侯,其食采之邑就在本县境内。在泾洋河(古称洋水)畔建立了平西城(又名平阳城或定远城)。原址在今天古城一带。这是西乡最早的建城记录。南北朝:县城迁往峡口,此时县名改为“丰宁县”,县城亦称为“丰宁城”。隋:由峡口迁至蒿坪山之阳(今四季河),一直到元,西乡县城一直在此。元:由于南宋末年遭蒙古铁蹄的蹂躏,城池被毁,县城由四季河迁到牧马河畔现在县城的所在地。
从三国一直到清前期,西乡和镇巴一直都是一个县,即西乡县。清嘉庆七年(公元1802年),为了镇压白莲教起义,析县东南二十四地为定远厅(相当于副县级)。民国元年(1912年)镇巴正式脱离西乡,成为镇巴县。
2000年,西乡县辖14个镇、11个乡。 根据第五次人口普查数据:全县总人口345074人,其中各乡镇人口(人): 城关镇 76334 扬河镇 27378 柳树镇 20953 沙河镇 15407 私渡镇 9921 桑园镇 11838 白龙塘镇 15628 古城镇 17725 峡口镇 13469 堰口镇 24964 茶镇 10559 高川镇 14672 两河口镇 14977 五里坝镇 8159 马踪滩乡 11965 钟家沟乡 8786 左溪乡 4796 罗镇乡 5331 司上乡 4724 马家湾乡 5094 三花石乡 7427 子午乡 3083 白勉峡乡 6119 大河乡 4724 河西乡 1041