打下河西走廊後,朱元璋意識到了哈密地區作為西北咽喉的地位,於是試圖招撫該地區的各族部眾。
他招撫了撒裡畏兀爾的首領卜煙帖木兒,在當地設定安定衛。
隨後明軍進攻西北的北元殘餘勢力,將戰線推進到哈密門口。1388年,藍玉帶著十幾萬明軍在捕魚兒海幾乎將北元王室一網打盡,北元末帝僅以身免。
在徹底打散了北元勢力後,朱元璋派出使者前往哈密招撫兀納失裡。
1391年,兀納失裡在戰勝周圍的部落後,“遣使請於延安、綏德、平涼、寧夏以馬互市”。
如果朱元璋同意,那麼哈密國的勢力就會擴充套件到河西走廊,直達隴東和寧夏地區。因此這一行為在朱元璋看來是在對明朝示威,同時探知明朝的虛實。於是朱元璋以哈密地方阻遏西域各國來往貢使,同時半道邀劫貢物為理由,派左軍都督金事劉真、宋晟進攻哈密國。
此時的明軍哪裡是小小的哈密能夠抵擋的,哈密城很快被攻破,兀納失裡向西逃亡,並嚮明廷上貢請罪,自覺成為明朝的藩屬國。
然而蒙元時期的西北戰亂太多,殺伐過重,使得河西地區幾乎成了赤地千里的無人區,明軍暫時無力在此成規模駐軍。於是明軍打下哈密城,逼迫兀納失裡服軟後就撤退了。
1397年,朱元璋在今新疆和田地區設定罕東衛,對當地進行羈縻統治,進而完成對哈密地區的包圍。
明成祖朱棣即位後,承繼了經略西北的方針。
1403年,他派遣使臣亦卜剌金前往哈密撫諭哈密國新王安克帖木兒。當時朝臣提議延續元朝的做法,將他封為肅王,以彰顯明朝取代元的統治後能夠繼承元的版圖。但是朱棣覺得封他一個新的王,不影響我承繼西北疆土,於是在1407年將安克帖木兒封為忠順王,意在突出哈密對明朝的忠順之心。
儘管在名義上進行了冊封,明廷對哈密國的控制力還不強。而草原上的韃靼首領鬼力赤與明朝作對,不滿哈密內屬明朝,派人將安克帖木兒毒死。
朱棣在派人去徵得哈密地方勢力的同意後,將多年前俘獲的哈密王子脫脫送到哈密,繼承忠順王的王位。
然而當地勢力只是因為畏懼明朝的勢力而同意脫脫繼承王位的,內心並不認可這位新主。
哈密舊王母為代表的地方勢力在脫脫上位後,採取各種手段排擠他,最終將他趕出了哈密。
朱棣原本是想搞區域自治,只要你們認同脫脫當王,其他的事情你們都可以自己做主,朝廷不加干涉。結果當地勢力敬酒不吃吃罰酒,朱棣下詔狠狠訓斥了王母與大小頭目。
為了保證對哈密的控制力,朱棣在哈密設定新的哈密衛,派長史、紀善等朝廷官員協助脫脫管理哈密,實際上是替脫脫把控哈密的政務和律法。
有官員提議在哈密駐軍,設定把總之職。但是朱棣出於懷柔遠人的思想,考慮到當時沒有能夠威脅明朝西北疆域的勢力,而哈密本地的政局和民族關係又比較複雜,拒絕了這一建議。
但是他沒想到脫脫在任時沉迷酒色,不理國政,結果把自己命玩沒了。朱棣痛心之餘,還是派官員前往祭奠,順便封“忠謹誠恪,眾所推服”的免力帖木兒為忠義王。這個新的忠義王上位後對明廷格外殷勤,多次上貢千匹戰馬,因此也更加深了明廷對他的信任。
朱棣也是給予哈密和忠順王很多的賞賜,其地位排在西北眾多朝貢國之前。
免力帖木兒去世時,恰逢明宣宗朱瞻基即位。
之前的忠順王脫脫在明朝皇室眼中的地位非同一般,於是朱瞻基封脫脫之子卜答失裡為忠順王,既肯定先王對明廷的忠順,也敲打他讓他聽話。
同時為了制衡哈密地方勢力,朱瞻基又冊封免力帖木兒