当时,大雪覆盖了道路,人马行军十分艰难,经常发生人或牲口掉到沟坑的险情。就连杨虎城也连人带马掉入了雪坑,费了好大劲,才拉上来。部队克服了种种困难,终于在1929年12月31日下午先后到达距驻马店30华里的沙河店地区。
1929年12月31日的午夜时分,杨虎城部趁敌不备两个旅的主力混进了驻马店城区随即发动攻击。一时间,枪声四起,火光冲天,驻马店内乱成一片。唐生智的前敌总指挥晏勋甫不知去向,指挥机能完全破坏,部队无法形成有组织的战斗力,只有到处乱跑,束手待俘。早饭时分,杨虎城率师部到达驻马店。杨虎城径直在市内到处巡视,一方面检查军纪,另外调整部署,做好战斗准备。唐生智得知杨虎城部袭击驻马店后,立即部署部队反扑。但他错误地认为攻进驻马店的,只是杨部的少数人,因而仅以一营一团的兵力反扑,结果1930年1月1日上午至3日早晨连续两天的进攻,均被各个击破。当他们发现判断错误,集中兵力准备总攻时,为时已晚,杨虎城部已全部进入阵地,严阵以待。1月4日拂晓,是反攻最激烈的一次。龚浩集中了两个旅的兵力,由驻马店西南猛攻,偏碰上早已做好准备的杨渠统部。同时,在驻马店俘获的中央炮兵团也全部加入战斗。虽然龚浩、刘兴两师的战斗力并不弱于杨虎城部,但徒以疏忽在前,自大于后,才使杨虎城部得以从容部署,反客为主,因而进攻数次,均未得逞,只好知难而退,集中到驻马店以东地区,形成对峙的局面。
杨虎城占领驻马店,给唐生智以致命的打击。当蒋介石、刘峙初接到杨虎城告捷的电报时,都不信杨虎城建了这么大的奇功。据说刘峙还疑惑杨虎城与唐生智设立圈套,诱歼第一师的主力,迟迟不进,因而一再电询进入市内的是否正规部队,进去了多少,龚浩、刘兴两师是否动摇。直到唐生智部与杨虎城部激战一昼夜后,龚浩、刘兴两师离开平汉线转移到驻马店以东地区时,刘峙才派铁甲车到确山来联络。第一师与杨师在确山会师后,决定将龚浩、刘兴两师包围于驻马店东郊而歼灭之。根据以上的决定,杨虎城当即下达了攻击命令。夜间11时攻击开始,杨虎城于1月7日夜10时左右,亲到驻马店东寨前沿指挥。攻击开始后,战斗很激烈,刘兴师几次将第二旅韩寅生团压迫到驻马店东寨墙根,杨虎城的手枪营也参加了战斗,杨虎城还亲到寨墙上指挥,他的秘书王菊人紧跟在他的身后,连帽子都被子弹打穿了,卫士好几个负伤。由于杨虎城坚持在前线指挥,部队没有退却,继而转危为安。
经此一战,杨虎城得到了蒋介石的嘉奖,委以第七军军长之职。新十四师番号也改为第十七师。并令杨部对唐生智继续追击。
这时,中央军各部陆续赶到,阎锡山也亲自率部渡黄河南下围歼唐生智部。在南北夹击之下,唐部官兵进退失据,大部被缴械、改编。唐生智本人无奈之下通电下野,化装潜逃。蒋唐战争至此结束。