过了一段时间,瓦岗军步步逼近东都,东都告急的文书接二连三,隋炀帝才信以为真。大业十三年七月,他派大将王世充,率领所谓江淮劲旅五万,火速北上,援救东都,同时下令其他地方的官兵也赶赴东都,共同对付瓦岗军。
王世充懂得兵法,在隋军将领中,算是会打仗的。他跟随隋炀帝到了扬州,很会投皇帝之所好,奉承拍马,看眼色行事,因而博得皇帝的信任。他带领官兵从扬州出发,绕道南阳,直到十月间,才到了洛阳。其他地方的官兵也陆续到了洛阳,加上刘长恭部的官兵,合在一起,有十余万人,由王世充为全军统帅。王世充还没有同瓦岗军打过交道,不知瓦岗军的厉害,他以为自已拥有十万之众,而且其中五万是自己的劲旅,因而傲气十足,气焰嚣张。他采取以攻为守的战略,妄图扭转东都被动挨打的局面。
王世充、刘长恭由洛阳出发,采取避实就虚的战术,绕过李密部的主力,偷渡洛水,进入瓦岗军的纵深地区,抢占了黑石关。刘长恭部在黑石关驻守,王世充带领主力由黑石关北渡洛河,向瓦岗军的月城方面猛扑过来。月城位于洛口城西南洛河西岸,是瓦岗军建立政权后新筑起的一个小城,当作洛口城的西壁屏障,瓦岗军在这里有重兵驻守。
李密先率领轻骑在洛河以北同玉世充的主力交战。这里是丘陵地带,沟坡纵横,地势复杂,骑兵作战很不适宜,李密初战失利。于是排他留部分步兵退至月城固守,自己率领骑兵渡到洛河南岸,同翟让部会合,两面夹击驻扎在黑石关的刘长恭部官兵。刘长恭是瓦岗军的手下败将,他的部下已是惊弓之鸟,怎能经得住瓦岗军的钳形夹击。他急忙命令点起烽火,六道青烟,冲天而起。这是万分紧急、向王世充求援的信号。王世充在洛北追击瓦岗军已二十余里,正布置围攻月城,看见黑石关方面发出的求救信号,急忙丢下月城,率领主力疾驰黑石关而来。他哪里知道,这时刘长恭部已经全军覆设。而且李密、程让牽领瓦岗军已分刚埋伏在洛河南岸,正等待他的到来呢。王册充部长途行军,已弄得兵困马乏,战斗力大削弱。他刚渡过洛河就遭到瓦岗军的迎头痛击,官兵大乱,损兵三千:他看成机不利,使率领余部撤退,拼命窜回东都。