在战斗中,毛泽东、周恩来、彭德怀等领导都亲临前线,总指挥部就设在直罗镇北面吴家台北端的一个山坡上。
徐海东、周士第率红15军团从药埠头由南向北拦击敌人,红1军团直插黑水寺,堵住了敌人的退路。上午11时,红1军团攻入直罗镇,红15军团将敌人在直罗镇南山上的阵地攻破。到中午时分,将牛元峰的第109师师直属队及其两个团全部歼灭。
开始战斗比较顺利,激战约半天,红军就攻占了直罗镇,来敌大部被歼灭,只是东山上那座石砌寨墙的小寨子没有攻下。因为寨墙坚固,敌人不少,遵照周恩来的指示,白天攻击必然伤亡大,先围起来等到晚上再发动进攻。
待到夜幕降临,红15军团即由周士第率领第78师向东山那个寨子攻击。周士第意识到这是中央红军到达陕北的第一仗,必须打胜,所以决心很大。他抱着不惜牺牲、攻敌必胜的信念,指挥第78师向敌人冲去。敌人果然支持不住,牛元峰弃寨突围西逃,又被红第75师追击,天将拂晓时,敌师长牛元峰在直罗镇西一座山上被红军击毙。到24日,直罗镇地区的敌人被红军全部歼灭。敌分路增援直罗镇的3个师,被红军打援部队歼灭10个团之后,也乖乖地撤离了。