正统年间,明军经过官山之战、
丰州之战后,开始加强对官山(与威宁海毗邻)、丰州滩、百眼井等地区的巡逻及控制。然而土木之变后,明军疏于防备。鉴于此,天顺中,石彪镇大同,请置城于威宁海,不果。
明宪宗成化十六年(1480年)正月,据延绥
镇守太监张选报,鞑靼
亦思马因将进攻延绥(今陕西榆林)。大臣余子俊反对出兵,兵部尚书王越力劝太监
汪直出兵。
成化十六年(1480年)正月十六日,宪宗诏命保国公
朱永为
平虏将军、
总兵官,汪直监军,王越提督军务,前往讨伐亦思马因。
二月,明军至延绥,
王越侦知亦思马因无犯延绥意,并已西迁至威宁海子(今内蒙正黄旗察哈尔南),欲以计袭击,于是劝汪直让朱永率大军由南路进,自己则与汪直率轻骑顺塞垣西进,到榆林会合。行至大同,才告诉汪直敌帐在威宁海子,于是尽选京营及大同、宣府两镇精兵两万一千人,出孤店(今山西大同东北),分数道进,值大风,风雪晦冥,潜行至威宁海子,亦思马因犹不知,乃掩击破之,杀其老弱。。
此役,王越以功封威宁伯,岁禄一千二百石;汪直增禄至三百石,升官者达二千九百余人,被赏者达一万七千九百余人。在明军取得红盐池之战、威宁海之战、黑石涯之战、收橐驼城的胜利后。成化二十年,李晟上奏威宁海、河套可耕可牧,请置城移民,因以荐用旧臣,非所宜言,降调为通判,下锦衣卫狱。致使后世明朝北虏之众凡有三窟,一屯河套,近延绥;一屯威宁海子之北,近大同;一屯北口青山(开平兴和附近),近宣府。连岁窥伺。其中以威宁海部最强。
考虑到明朝前中期对于斩首的苛刻计算标准,斩首400余级,敌军伤亡往往多达数千。明清两朝之所以史料中斩首数显得较低,是因为前代史料中的斩首数,往往是以实际斩首数推算估测出来的歼敌数,而且很多时候在此基础上还有夸张。而到了记载较为丰富的明清二朝,则一般采取原始斩首数据计入史料。
“获马驼牛羊六千”这样的缴获,亦不在
诸葛亮卤城之战“玄铠五千领,角弩三千一百张”的战果之下,足可见威宁海之战确可以称作大捷了。
这次胜利还有一个特别的意义,就是
朱祁镇被蒙古俘虏期间,就被关押在威宁海子。朱见深特别高兴,破格把王越加封为“威宁伯”。
郑晓:①威宁出塞,俘馘甚多,自永乐以来,唯此夺其气。(《
国榷》引)②威宁之捷,足称敌忾。(《皇明北虏考》)
章潢:迨至成化,诸豪竞起,分部争雄,各据水草,残我边郡。河套沃土,弃为巢穴,威宁之捷,足称敌忾。顾兹谗口,反谓贪功,刀笔因而舞文。干城为之解体。不惟大宁、兴和、开平已非我有。朔方、河南亦非职方之旧。而河西、辽东徼外城郭,诸国堡塞,奚夷,渐亦携贰。于是并塞万里,所在将屯,官益多。力益分,财益匮,中国益困。(《图书编》)
顾其言:
孙子曰:善攻者,敌不知其所守,越夜袭威宁而俘斩虏寇。又曰:形之敌必从之,越挥兵上山,而贼不敢击是也。(《皇明百将列传评林》)