唐朝后期活動在今陜、甘、寧的黨項族,北宋初年在首領(lǐng)李繼遷的率領(lǐng)下,與宋王朝進行對抗。1002年,李繼遷攻下靈州,稱西平府,遷都于此。1004年,李繼遷卒,子德明即位,與宋議和,并把目標轉(zhuǎn)向河西走廊。1028年,滅甘州回鶻;1030年,瓜州王以千騎降。宋仁宗景祐三年(1036),西夏攻占敦煌,設(shè)瓜州西平監(jiān)軍司管轄此地。西夏的地方行政組織也分州(府、軍)、縣(城、堡)二級制,敦煌仍稱沙州。當時的西夏,主要是東向與宋、遼爭戰(zhàn),無暇西顧。所以這時西夏對沙州的控制還很薄弱,沙州地方首領(lǐng)還保持著一定的獨立性,甚至于歸義軍的使臣仍向宋朝貢了七次,這說明在西夏統(tǒng)治沙州的很長一段時間內(nèi),歸義軍仍有很大的勢力。
1038年,李元昊稱帝,建大夏國,史稱西夏。大概在1052年以后,西夏加強了對瓜沙二州的直接控制。1062年,西夏惠宗為了和北宋進行戰(zhàn)爭,西夏曾向東遷徙敦煌民眾,使敦煌受到很大的削弱。1109年,瓜、沙、肅三州發(fā)生饑荒,百姓流亡他鄉(xiāng)。此后,隨著海上交通的發(fā)展及陸上絲路的衰落,敦煌失去了絲路貿(mào)易中轉(zhuǎn)站的地位。
蒙古興起后,出征西夏。1205年,侵擾瓜沙地區(qū)。1224年,蒙古騎兵圍攻沙州半年。1227年3月,蒙古汗國占領(lǐng)敦煌,廢棄沙州建置,劃入八都大王的封地,即歸入成吉思汗長孫拔都的封地。同年6月,蒙古滅西夏。
1271年,元朝建立后不久,馬可波羅途經(jīng)沙州。1277年,元朝統(tǒng)一中國后,為了加強中央集權(quán),實行行中書省制度。地方行政組織有省、路、府、州、縣各級,元朝重設(shè)沙州,隸肅州,歸元朝中央政府管轄,授當?shù)匕傩仗锓N、農(nóng)具。1280年,沙州升格為路,設(shè)總管府,統(tǒng)瓜沙二州,直接肅屬于甘肅行中書省?!对?middot;地理志》載:“沙州路……元太祖二十二年,破其城,以隸八都大王。至元十四年復立州,十七處升為沙州路總管府,瓜州隸焉。”其下注曰:“沙州去肅州千五百里,內(nèi)附貧民,欲乞糧沙州,必須白之肅州,然后給予,朝遷廷以其不便,故升沙州為路。”元成宗時,為開發(fā)河西,曾在敦煌等地實行屯田,大德七年(1303),御史臺臣言:“瓜、沙二州,自昔為邊鎮(zhèn)重地,今大軍屯駐甘州,使官民反居邊外,非宜。乞以蒙古軍萬人分鎮(zhèn)險隘,立屯田以供軍實,為便。”敦煌成為元朝與西北藩王斗爭的重要基地。但元朝西向的交通要道已不再通過敦煌,敦煌在地理上失去了以往的優(yōu)勢。1291—1292年,元朝移瓜沙州居民入肅州,敦煌的地位日趨衰微。
1368年明朝建立。1372年,明將馮勝經(jīng)略河西,取得初步勝利,但敦煌仍在元朝殘部的控制之下。為了防止蒙古東進,馮勝在肅州西七十里處建嘉峪關(guān),成為明朝西部邊關(guān),敦煌被棄置關(guān)外。1391年,明朝出兵哈密,沙州蒙古王子歸順明朝。1404年,明朝設(shè)沙州衛(wèi),仍用蒙古后裔統(tǒng)轄。1446年,沙州內(nèi)亂,明將任禮率軍入沙州,把沙州衛(wèi)屬下二百余戶遷入關(guān)內(nèi),沙州仍由蒙古后裔占據(jù)。以后吐魯番勢力強大,1515年攻沙州蒙古,1528年占領(lǐng)沙州。1524年,明朝關(guān)閉嘉峪關(guān),1529年放棄哈密。敦煌在明朝初年就已成為牧區(qū),至此更甚。
1644年明亡,清兵入關(guān),定都北京??滴鯐r平定新疆。1723年,雍正帝在敦煌設(shè)沙州所,1725年升格為衛(wèi),并遷2400余戶來此屯田。沙州舊城被水沖毀,此時在東面筑新城。乾隆二十年(1760),改沙州衛(wèi)為敦煌縣,隸安肅道。敦煌在清朝時通過移民、屯田、墾荒等措施略有恢復,但沒有太大起色。