隋末起义军中,李渊是最为实力强劲的一支,推翻了隋朝的统治后,其他各路起义军就是大唐最后的敌人了。
武德三年七月,唐军在李世民的率领下,出关进攻王世充。才三个月的时间,洛阳周围郡县全部落入李世民手中,洛阳成了一座孤城。
在隋末各家反王里,手下将领最热衷于投降的就是王世充了,其实,在唐大举进攻之前,王的部下就已经有不少降了唐。七月,张公瑾降;八月,邓州降;九月,田瓒以所部25州降(25州啊!),时德睿以所部7州降;十月,大将张镇周降,郭庆以管州降,魏陆以荥阳降,王要汉以汴州降。
推荐中国历史朝代人物故事阅读:李世民盛怒之下杀了卢祖尚,却无意中使他青史留名
眼看局势不利,王世充亲自出面向李世民求和,双方在洛阳城外隔着洛水谈判,王发言道,唐帝关中,郑帝河南,我没有去进攻你的关中,你为什么要进攻我的河南?李世民答道,我大唐志在四海,你挡了我的路,我为此而来。王又提议说,让我们罢兵讲和,“不亦善乎”?李答道,我爸爸只命令我来灭了你,没有授权我和你讲和。于是和谈破裂了。
既然无法求和,王世充只得全力迎战,无奈人心已失,连战皆败,正面打不过,那只好用偷袭了。李世民作为主帅有个很不好的习惯,喜欢只带少数手下到最前线去看地形或侦察敌情。王世充早就知道李世民的这个爱好,一直都在等待合适的机会。机会在九月辛巳这天出现了,李世民只带了五百骑兵到魏宣武陵看地形,王世充立即帅步骑兵万余人前往突击,将李世民重重围困,唐军主力这时也已得知情况危急,屈突通领援兵拼命来救,但都被王部拦住。王的大将单雄信杀散李世民的卫士,直冲到李世民马前,眼看李世民就要当不成唐太宗,突然出现了一个叫尉迟敬德的奇迹,在单雄信举槊刺向李世民的一刹那从侧面把单雄信挑落马下。随后,尉迟敬德护着李世民杀出重围,终于和来接应的唐军主力会合,尉迟随即回身向王世充发起反冲击,出入王军如无人之境,士气大振的唐军跟随其后,结果反倒是王世充全军覆没,仅以身免。
这时王已失去了独自对抗唐军的能力,不得已,只好派了使者去向窦建德求援,窦与王是敌非友,王此举实为饮鸩止渴,但除此之外,再没有其他办法了。窦于武德三年十一月回信表示同意援救洛阳,但窦不怀好意,希望唐郑之间继续交战,到两败俱伤时再由他收渔翁之利,因此一直隔岸观火,不发援兵。
好在洛阳城的防御能力是极强的,守城器械里还包括了当时最强大的武器大炮飞石和八弓弩箭机,大炮飞石能将五十斤的大石掷二百步,杀伤力极强;八弓弩箭机则强大到夸张的程度,“箭如车辐,簇如巨斧,射五百步”,靠了坚城利“炮”,王世充在守城战中获得了成功。但是,象当年李密围城时一样,洛阳的粮食又快用完了。王世充决定在断粮前全力一搏,希望能重现上次击败李密的奇迹,于是,王军在武德四年二月开城出击,不知是否巧合,王军出击的人数与当年破李密时相同,也是二万。两军在洛阳城下血战,王世充和李世民都亲自上阵,王军在此战中斗志极高,死战不退(王的部队基本上是以隋朝的禁卫军--骁果为班底的,战斗力极强),给唐军造成很大伤亡,连李世民都险些阵亡,大将段志玄一度被俘,可惜王军最后仍然不敌唐军,在战死七千人后不得不撤回洛阳。这一战是唐郑之战中最惨烈的一战,也是王世充最后一次战略出击。此战之后,王世充只有咬牙死撑,每日里除了拼命守城,就是望眼欲穿地盼望窦的援军。