刘牢之接到命令,就在当天夜里,带领五千名北府兵,藉著星光,向洛涧出发。听说要向秦军发动攻击,北府兵人人摩拳擦掌,战斗情绪异常高昂。晋军来到离洛水十里路的地方,刘牢之接到前哨的报告说:梁成的部队,在洛水对岸扎下了营寨,黑压压的一大片,但是一点动静也没有,好像已经进入梦乡了。刘牢之立即向部队下了急行军的命令。北府兵五千人马涉水而过,像猛虎下山一样,勇猛地冲破了秦军的前沿阵地,呐喊著杀进了敌人的大营。正在酣睡的秦兵还没有来得及分清什么情况,许多人就被晋军杀死了。梁成从梦中惊醒,听到帐外的厮杀声,吓呆了。他慌慌张张地爬起来,披上铠甲,翻身上马,正想抵抗,只见刘牢之一马当先,手执长枪,直向梁成的营帐冲来,正好和梁成相遇。两人大战了十几个回合,梁成胆怯手软,渐渐招架不住,被刘牢之一枪刺於马下。
秦军失去了主将,士兵们更加无心抵抗,纷纷向后逃跑。晋军乘胜追击,一直追到淮河边上。刘牢之马上分兵截断秦兵退路,秦兵被追得走投无路,抢着跳进淮水里逃命,许多人都淹死在水里了。经过一夜的激烈战斗,秦军死伤达一万五千人,洛涧给刘牢之的北府兵收复了,前秦在淮河的封锁线被打破了。