至正二十二年(1362年),察罕帖木儿在围攻
益都红巾军时被降将田丰刺杀,王保保接管了其养父的部队,攻破益都城,杀田丰、王士诚,随后又和另一系军阀,将军孛罗帖木儿争夺
山西和
河北。王保保和孛罗帖木儿均卷入了元朝末年宫廷的党争,孛罗帖木儿得到了皇帝的支持,王保保自己得到了太子愛猷識理答臘(后来的
元昭宗)的支持。至正二十四年(1364年),孛罗贴木儿打着“
清君侧”的名义,攻入大都,太子流亡到王保保的属地
太原,后孛罗贴木儿为元顺帝刺杀,王保保带兵保护太子还朝。因护卫太子有功,王保保被封为太傅、左丞相,同時元順帝賜蒙古名
擴廓帖木爾給王保保。
为因应南方
朱元璋的反政府势力的崛起,元顺帝下诏封王保保为河南王,总领天下兵马。王保保于是要求割据关中的李思齐等四位将领听从调遣,共同讨伐朱元璋。但由于李思齐等人均为察罕帖木儿的同级同辈将领,比王保保年长资历深,瞧不起王保保,也据不听从调遣。王保保派遣其弟脱因帖木儿把守
山东防备朱元璋,自己亲入
陕西攻打李思齐,双方连年混战,元政府的态度则摇摆不定,先支持王保保,然后又支持李思齐,最后元顺帝于至正二十八年(
1368年)下诏削去王保保所有官职,命令众将合攻王保保。此时,朱元璋已经在
应天建立
明朝,改元洪武,
徐达、
常遇春的北伐大军也已经逼近并最终攻克了大都。当年十月,逃往
上都的元顺帝再次封王保保为齐王,命其从其根据地山西太原北上,绕道
雁门关和
居庸关夺回大都(当时已被朱元璋改名
北平),徐达趁王保保进攻大都的机会,攻入山西,在太原城下击败了回师救援的王保保,王保保远走大同,并进一步退出塞外。