急を聞いた秀吉は賤ヶ岳戦線へ戻ることを決め、まず先遣隊を出し、北国脇往還沿いの家々に命じて松明と握り飯を用意させ、1万5千の兵を率いて午後4時に大垣を出発した。盛政は、秀吉の率いる本隊が戻ってくるのは早くても21日の夕方と考えていた。大軍の移動にはそれくらいの時間を要することが常識だったからである。
ところが秀吉はその意表をつき、迅速な行動で木之本に到着したのである。大垣から木之本までの距離は約52キロであるが、それを5時間ほどで疾走したという。そして息つく暇もなく、全軍を動員して反撃態勢に移った。引きあげようとする佐久間隊を追撃する目算を立てたのである。
そして21日の午前2時頃から戦いが始められ、盛政隊の殿軍である柴田勝政隊との間で戦いとなり、秀吉の馬廻り部隊であった福島正則・加藤清正らの大活躍によって柴田隊を負い崩すことに成功した。これがいわゆる「賤ヶ岳の七本槍」である。この追撃戦で柴田勝政は戦死した。
柴田勝政隊の前方にあった佐久間盛政隊は柴田隊の残兵を収容し、羽柴勢へ向けて逆襲にかかった。しかしこのとき、佐久間隊後方の茂山に布陣していた前田利家らの部隊が戦線より離脱をはじめたことにより連鎖的に裏崩れを起こし、佐久間隊は壊乱した。これに乗じて羽柴勢はさらに猛撃を加えたのである。
この前田利家らの離脱は、秀吉が予め手を回して味方になることを誘っていたことによるともいわれている。
盛政は隊の壊滅後、郷民に捕えられた。
一方の柴田勝家は、20日に内中尾山の本陣から南下して狐塚に布陣し、大岩山砦を陥落させた盛政に、すぐに撤兵してくるように厳命を下していた。しかし盛政が戻らないため、そのまま布陣していたのである。そこへ21日に羽柴勢が佐久間隊を追い崩した勢いを駆って殺到、勝家本陣の側面から攻撃をかけたのである。これと併せて左禰山の堀秀政も下山、木之本にあった羽柴秀長隊も前進してきたために勝家勢は総崩れとなり、北ノ庄めざして潰走することになったのである。
この戦いのなかで勝家配下の武将・毛受勝照が勝家の馬標を受け、勝家に代わって討死をとげた。
この戦いのあと、羽柴勢は柴田勢にさらに追い討ちをかけるべく越前へと向けて侵攻を続ける。