曲靖,位于云南、贵州、广西三省交界处,素有“滇黔锁钥”、“云南咽喉”之称,春秋战国时就曾是古滇国的心腹要地,秦始皇统一列国后,在曲靖地方设置了建宁县,并修五尺道将曲靖与巴蜀相连,由此直至唐末,曲靖就一直属于中国的领土。
汉代,建宁改称为味县,属于犍为郡管辖;三国时,属于建宁郡所属;西晋时属于宁州,唐代改称南宁州;唐末,曲靖落入南诏手中,并在整个宋代归属于大理国;元朝统一中国后,曲靖再次纳入中国版图,并在历史上正式出现了曲靖这个名字,当时叫做曲靖路,以后来明人的理解,曲靖者系“举唐时曲州、靖州之名合而用之”;等到明王朝驱逐蒙元,恢复中华后,曲靖路便改名为了曲靖军民府,并以这个名字延续到了朱由崧的时代。
就地理位置而言,曲靖位于乌蒙山脉中的南盘江谷地,是云贵高原上难得一见的大片高原平坝地带,由于汉民族及当地少数民族二千多年来的开发,可以称得上鱼米之乡。
而就曲靖府城来说,其位于翠峰山东南、胜峰山(妙高山、寥廓山)正东,左邻白石江、南依潇湘河,城周六里,城高约二丈七尺(9.14米)----另有三尺(1.02米)高的城垛1630个----再加上城墙厚达九尺(3.04米),所以相比其在滇东的政治中心地位,其实更像是一个易守难攻的军事要塞。
不过这样一个要塞在面对大西军16万大军时,依旧有朝不保夕的可能,所以,路振飞和赵光远为了能守住曲靖府城这个要点,便在最短时间内恢复了距离曲靖府城20里外、洪武年间才废弃的曲靖旧城,并在翠峰山、胜峰山上设寨以俯视曲靖。
最终,当张献忠率领十多万大西军进抵曲靖城下时,他要面对的是以两座城池、16座山间营堡、22处栅寨为核心的防御体系,虽说,这一防御体系实际是在短短一个多月内匆忙建成的,既不坚固,也不严密,但已经是明军能拿出手的最好状态了,足以让张献忠头疼不已。
若是正常情况下,张献忠完全可以绕过这些城池、营堡、栅寨,全力切断明军的补给线,逼迫明军为了打通补给线,而倒过来主动攻击大西军的营寨;但问题是,张献忠部缺粮的情况比明军要严重,因此实施封锁作战的结果,就是张部先于明军饿死,所以,张献忠在无可奈何之下,只能命令艾能奇、李定国、刘文秀、白文癣马元利、张化龙等部克服万难,立刻展开进攻。
于是,艾能奇部便负责对曲靖旧城石城的进攻,李定国部负责牵制曲靖府城的明军,刘文秀部攻打翠峰山,白文选部封锁曲靖城东交海(东海子)方向,并截断曲靖新城旧城之间的联系,马元利部和张化龙部则负责攻打胜峰山明军堡寨。
明军这边,自知指挥能力不行的路振飞率1万兵马(含800骑兵)保守石城,四川云南提督赵光远率主力2.5万人(含2000骑兵)守备曲靖新城,已经被任命为黔东总兵官的杨展率万余汉蛮军队守备翠峰山沿线各堡寨,已经被任命为大理副总兵官的曹勋、时任建昌副总兵(四川行都指挥使司)的丁如龙、时任云南副总兵周双乔等三部1.5万余汉蛮军队负责守卫胜峰山上的各处要点;剩余近万汉蛮军队,或置于曲靖新城城东交海边堡寨,或置于沾益州州城及普安州-平夷卫一线,以堵防大西军可能对贵州及四川的进攻。
既然一方是早有准备,另一方是破釜沉舟,因此战斗一打响就十分激烈,尤其是在胜峰山、翠峰山方向,大西军连续多日都是从天色微明打到了夜幕降临,完全不给两地明军休憩的时间;在大西军的疯狂进攻下,明军虽然依托一早建设的堡寨进行了顽强抵抗,反复争夺,但最终还是丢失了一连串的要点,尤其是在翠峰山方向,杨展所部贵州土兵直接被刘文秀部给打崩了,以至于杨展不得不率二千残部自翠峰山北麓突围,退回了沾益州城固守。
夺取翠峰山的刘文秀部得势不饶人,随即追击杨展部至沾益州城下,并包围了沾益州城。
不过,杨展所部退回沾益州后,州城内守军兵力超过5000人,以5000人守备一座城周三里多的小城----换到内地,这么点的面积,别说是州城了,就连县城都算不上,甚至某些大一点的镇子的面积都有可能比沾益州州城大了,好在沾益州州城的城墙是按州城的级别建造的,倒也有合适的高度,便于守备----实际兵力是过剩的,因此刘文秀部一时间也拿不下沾益州州城来。
刘文秀是打得挺顺手的,但就总体战局而言,大西军方面除了在翠峰山、胜峰山方向有一点收获外----胜峰山的明军因为时不时能得到曲靖府城内明军的增援,因此,虽然丢了一些栅寨、营堡,但却依旧能坚持下去----其他地方的攻击都未有好的收获。
尤其是白文选部攻打守备兵力只有700多人的明军交海要塞时,因此地形的限制----交海是南盘江泛滥形成的水泊,平时面积只有5平方公里,但丰水期面积超过30平方公里,由此可知,要塞周边道路多在泥泞地带,且要塞距离曲靖新城仅有10里,进攻者很容易遭到曲靖城内明军的夹击----十几次攻击都铩羽而归,气得张献忠连抽了他几鞭子,但鞭子打得再多,拿不下来就是拿不下来,换了别人也不成,所以,张献忠无可奈何之下,只能让白文选部放弃了对交海要塞的攻击,仅仅负责截断新旧曲靖城之间的联系。
只是,曲靖府城的明军能在交海要塞受到攻击时,进行背击,那么李定国部在攻击曲靖府城时也可能受到交海要塞的背击----这与胜峰山方面的情况完全一致----所以,张献忠是不能听任交海要塞存在的。