世民率军夺回洺水城。三月，李世民和李艺在洺水以南扎营，并分兵驻守洺水以北，刘黑闼多次挑战，李世民均坚守不战，挫其兵锋，同时另派奇兵断其粮道，冀州（治信都县，今河北省冀州市）、贝州（治清河县，今河北省清河县西北）、沧州（治清池县，今河北省沧州市东南）、瀛州（治河间县，今河北省河间市）等州的水陆运粮舟车，都被唐军焚毁沉没，双方相持六十余日，李世民料定刘黑闼粮草已尽，必来决战，于是命人在洺水上游筑堰截断河水。三月二十六日，刘黑闼果然率领二万步骑兵南渡洺水，逼近唐营列阵。李世民先轻骑出战，继而亲率骑兵击破刘黑闼