思虑再三后,李世民决定主动出击,与薛举军决一胜负,于是于六月二十一日这天,在高城西南列阵,然而薛举军却似乎早已料到李世民会率兵出城,军阵尚未展开,薛举便秘密带兵进袭唐军背后,唐军猝不及防之下,互相踏死无数,士气大跌。
二十二日,双方再次于浅水原(今长武东北)交战,唐八位总管都败下阵,士卒死亡十分之五六,大将军慕容罗、李安远均阵亡,王君廓败走岐山,唐军于是大败。
李世民最后带少数人马逃回长安,薛举于是攻克高城,收拾唐兵尸首筑成高台,长安震动,人心浮动,李渊也有些慌了,让人快马急诏晋王李隐回师长安。