Vandamme attacked first against a weakly held Prussian right at St Armand, but despite some initial success struggled to make headway and after a while shifted right, across the stream in an effort to join Gerard's attack on Ligny.
On the opposite flank Gerard was cautious, expecting (quite correctly as it turned out) a Prussian force to advance against his right. The Prussians took advantage of Gerard's caution and pressed forward.
Meanwhile the Prussian cavalry arrived and filled the space between the two Prussian wings. But no sooner had the Prussian troopers begun to form up than the French Guard cavalry arrived. The two cavalry forces were soon locked in combat in which the Prussians were bested and driven from the field.
Gerard managed to drive off the Prussians he had been fearing on his right, but his left collapsed to s strong Prussian assault. The Guard infantry then intervened and after a very close fight managed to drive back the Prussians.
The French now were free to march against Ligny and the battle ended.