曹锟一直以为南部防御是最为稳妥的,毕竟要从汉中和安康方向来西安的道路都是盘山羊肠小道,有的地方更是仅能容纳一人通过,北伐军想要从这些小道上打到西安简直是痴人说梦,可是恰恰是他最信任的刘鸿魁坏了他事,因此在刘鸿魁被几个马弁架着逃回西安以一副极为狼狈的模样出现在他面前时,他当场拔出指挥刀想一刀剁了刘鸿魁,幸亏几个军官拉住才让刘鸿魁捡回了一条命。
不过曹锟还没有来得及处理刘鸿魁,没过多久北伐军就已经兵临西安城下了,这位让曹锟和一些军官大惊失色,这可如何是好,现在刘鸿魁所部已经全面溃散,想要把这些溃兵找回来基本上不可能了,城外北伐军已经大军围城,一只蚊子都飞不出去。在此之前曹锟倒是派人去分别向卢永祥和吴佩孚求援,现在就看能不能坚持到援兵到来了。
北伐军围城之后并未立即开始攻城,这天傍晚,从城外走过来一个举着白旗的北伐军参谋来到城门下掏出一封书信,声言这是北伐军西路军司令官蔡锷写给曹锟的书信,城楼上很快放下一个吊篮,那参谋将书信放在篮子之后没有离去,而是继续呆在原地等待。
第二天早上,送信的参谋返回向蔡锷报告,曹锟的人拿走了书信,但没有任何反应,其实那封信是蔡锷写给曹锟的劝降信,限他在今天天亮之前开城门投降,否则天亮之后北伐军就会发起进攻。
既然曹锟选择了不投降,蔡锷感觉自己仁至义尽,当即下令发起进攻,在南门发起猛攻,在东门、西门和北门三个方向进行牵制,战斗一天,南门城上城下尸体堆积如山,南门差点失守,如果不是曹锟在下午四点左右将自己的卫队调过来帮助防守,估计这会北伐军已经攻入城内了。
西安城墙很结实,蔡锷命令集中所有火炮全力炮击城墙,炮弹打了一天,城墙虽然已经看破不堪,但依然屹立在夜色之中。
深夜时分,曹锟趁蔡锷大军白天进攻劳累,组织大部分兵力打开东门强行向东突围,深夜城外漆黑一片,守在东门外的北伐军一个团被打了一个措手不及,待反应过来的时候调集兵力已经来不及,在付出了惨重的伤亡之后,还是让曹锟跑了,但曹锟只带走了两百多人,其他人全部被留下成了俘虏,西安随即被北伐军占领。
曹锟带着两百多人向东突围成功之后恰好遇到了被派去向吴佩孚求援的通讯兵,这才得知九间房也已经被北伐军一个团占领,不过这个通讯兵说他当时抵达九间房时北伐军正在进攻,他到了之后将西安的情况告诉了那里的北洋守军,他们已经派人去通知吴佩孚了。
曹锟听了通讯兵的汇报之后决定不再停留,立即向东快速前往潼关,哪里还有 北洋军一个团的兵力,用一个团的兵力守潼关暂时绰绰有余,只要能将北伐军挡在潼关以西,不让蔡锷威胁河南和山西,他就有充足的时间重新调集兵力来对付蔡锷。
第二天,当卢永祥得知西安失守的消息之后大惊失色,为防止被北伐军东西两面夹击,他立即率兵向北退往甘肃境内,再从甘肃继续向北途径宁夏进入绥远。
而吴佩孚在得知西安被北伐军围攻而且北伐军正在进攻九间房的时候就知道坏了,前有阻路,后路被断,想要逃出升天,就必须出奇招,他也是心智坚定之辈,经过短暂的惊慌之后他派人在当地山区找到了一个山民猎户,让猎户带着走山间小路往东而去,在这个地区的山间小路太过险要,道路极为难行,大军在行军途中时常有人不小心滚下山去。
半个月之后,吴佩孚带着已经失去三分之二兵力和所有重武器的17师出现在了潼关城下,所有人都饿得面黄肌瘦。而北伐军西路军在蔡锷的指挥下在半个月内迅速攻占了陕西大部。