然而尽管盘面占优,洛阳城仍旧是块难啃的硬骨头。唐军数度派兵进攻,都被郑军死死地压在城外。李世民亲自带人到城下侦察,王世充大将单雄信率万余骑兵突然包围了李世民。危急之中,尉迟敬德使马槊突击,于万军丛中刺单雄信于马下,拼死救李世民脱出重围。
攻城战斗打了半年,仍然没有进展。正当唐军疲惫不堪之际,突然传来噩耗,河北夏王窦建德率大军十余万,已渡河南下,攻陷荥阳。窦建德亲自致书于李世民,要求其退回潼关。
面对强大压力,唐军内部不少人产生怯意,主张暂且退回新安,据险而守观望形势。
李世民力排从议,他认为,洛阳已经到了生死关头,只要再包围十几天,王世充必然崩溃,此时退兵,前面的努力就全白费了。如果掐住虎牢关,窦建德一时半会解决不了战斗,王世充就死定了。如果窦氏敢于进攻虎牢关,那么击破他也不在话下。
李世民于是留下弟弟李元吉继续包围洛阳,自率最精锐的玄甲军3500人赶赴虎牢关。窦建德自恃兵多,拒绝部下绕开虎牢、直接进攻河东的围魏救赵之计,采用一字长蛇阵硬攻虎牢关。结果散漫的夏兵被高度机动的玄甲军击溃,混战中窦建德被一枪刺中,夏军大败。窦建德逃到汜水河的牛口渚时,被紧追不舍的唐军擒获。










