洛阳、虎牢之战是唐朝武德三年(公元620年)七月至四年五月,秦王李世民率军在洛阳、虎牢(今中国中部河南省荥阳汜水镇西北)各个击破王世充、窦建德军的一次重要作战。
王世充原来是隋东都洛阳守将,隋炀帝死后,他在唐朝武德二年四月称帝,国号郑,并利用唐军在河东作战无暇顾及东部的机会,夺取了唐朝在河南的部分土地。柏壁之战后,李渊为夺取中原,采取先郑后夏(窦建德已称夏王)、各个击破的方略,唐朝武德三年七月,命令李世民领兵8万向东攻打王世充。同时派遣使者与窦建德言和修好,使他保持中立。王世充从各州镇挑选勇士聚集洛阳,命令他的三个侄子在分别镇守襄阳(今属中国中南部湖北省)、虎牢、怀州(今河南沁阳)等重要地点,命令他的兄长、儿子防守洛阳,他亲自率步骑3万迎击唐军。
李世民率步骑5万进军慈涧(今河南新安东),王世充被迫撤回洛阳。李世民于是决定先扫清外围然后攻城,经过八个月的作战,唐军攻克回洛城,并占领虎牢,河南50余州相继归降。李世民率军进逼洛阳,经过一番激战,将其合围。王世充困守孤城,缺乏粮草,民心颓废,几次派使者向窦建德求救。窦建德得知洛阳危急,怕唐灭郑后危及自己,决定先联合郑国攻击唐朝,然后找时机灭郑,再夺取天下。于是率兵10余万西进,连续攻克管城(今河南省省会郑州)、荥阳(今属河南)、阳翟(今河南禹县)等地,进到虎牢的东面。
李世民与部下商议对策,部将多主张退避。他力排众议,决定分兵围困洛阳,占据虎牢要地,阻止窦军向西进军,一举两得。由于虎牢地形险阻,窦军不能前进,驻扎了1个多月,多次作战不利,士气低落,将卒思乡。李世民得知,引诱他出战。窦军果然全部出动,李世民下令骑军队直冲人窦军。窦建德正和群臣议事,唐军突至,前后夹击,阵势大乱。唐军追击30里,俘获5万多人,窦建德受伤被俘。李世民回军洛阳,王世充就投降了。
此战,李世民围城打援,避锐击惰,奇兵突袭,一举两克。至此唐王朝的统一事业基本完成。