Rankiem 16 czerwca dobiegała końca koncentracja armii Blüchera pod Ligny i Sombreffe. Dowództwo pruskie postanowiło stoczyć bitwę opierając front armii o wsie Sombreffe, Ligny i Saint Amand w taki sposób, by mieć za plecami drogę łączącą Namur, Quatre Bras i Nivelles. Droga ta dawała łączność z armią Wellingtona, która w tym czasie szykowała się do bitwy pod Quatre Bras, a było to tylko sześć kilometrów na północny zachód od Sombreffe.
Po południowej stronie drogi, od wsi Balatre na wschodzie po Brye na zachodzie, ciągnęło się nieregularne pasmo wzgórz. Pomiędzy wzgórzami znajdowały się łagodne dolinki i głębokie parowy. Przez wsie Saint Amand, Ligny, Tongrinelle, Boignee i Balatre w trudnych do przebycia wąwozach płynął strumień Ligny.
Pierwszy na miejsce koncentracji przybył I korpus gen. von Zietena. O 8 rano stał już na swoich pozycjach tworząc załamany pod kątem prostym front od Saint Amand do Ligny. Zabudowania Saint Amand obsadziła 3 brygada gen. von Jagowa. Dalej na prawym skrzydle armii pruskiej (w Wagnele) stały już tylko dwa szwadrony jazdy. W nierównościach terenu pomiędzy Saint Amand a Brye ukryły się śląskie kompanie strzelców nr 2 i 4. Pomiędzy Saint Amand a Ligny stanęła 1 brygada gen. von Steinmetza, a samej Ligny broniła 4 brygada gen. von Henkla. Za Saint Amand w odwodzie stanął 7 i 29 pułk piechoty i 3 pułk landwery westfalskiej. Silna grupa odwodowa artylerii zajęła miejsce w drugiej linii za 1 brygadą, natomiast za brygadą Henkla stanęła wycofana z Fleurus kawaleria Rödera.
O 10 rano przybył II korpus gen. von Pircha, który stworzył w drugiej linii szeroki na 1500 m front wzdłuż drogi Namur-Nivelles. Na prawym skrzydle stanęła 5 brygada gen. von Tippelskirchena, pomiędzy nią a wsią Brye ustawiła się 6 brygada gen. von Kraffta. 7 brygada gen. von Brausego zajęła pozycje przy samej drodze pomiędzy Brye a Sombreffe, tutaj też z tyłu znalazła się jazda korpusu. Szyk zamykała 8 brygada gen. von Langena, która lewym skrzydłem opierała się o Sombreffe. II korpus mógł zostać użyty do wsparcia pierwszej linii, do ubezpieczenia odwrotu lub, gdyby nie był potrzebny pod Ligny, zostać wysłany na pomoc Wellingtonowi.
Ostatni pod Ligny przybył III korpus von. Thielemanna. Dowódca korpusu postanowił bronić wsi Tongrinne, Boignee i Balatre blokując w ten sposób drogę z Fleurus do Gembloux. Była to ważna pozycja, a jej utrata umożliwiała Francuzom wyjście na tyły I i II korpusu pruskiego i stwarzała ryzyko ich całkowitego zniszczenia.
IV korpus gen. Bülowa rano 16 czerwca znajdował się w okolicach Liége i nie miał szans na dotarcie pod Ligny na czas.
Przybycie Francuzów
Wojska francuskie dotarły do Fleurus (2 km na południe od Saint Amand) około 10 rano i rozpoczęły ustawianie się na pozycjach wyjściowych. Najdalej na prawym skrzydle zajęła pozycję jazda marszałka Grouchy’ego (I korpus jazdy gen. Pajola i dwie baterie artylerii konnej). Na prawo od drogi z Fleurus frontem do wsi Tongrinelle stanęła 14 dywizja piechoty gen. Hulota wsparta silną artylerią. Z tyłu za 14 dywizją zajął pozycję II korpus ciężkiej jazdy gen. Exelmansa liczący 2800 dragonów.
Po lewej stronie drogi, w centrum armii francuskiej, frontem do Ligny, stanęły dywizje IV korpusu gen. Gérarda (13 dywizja gen. Vichery’ego i 12 dywizja hrabiego Pécheux). Dalej, frontem do Saint Amand, ustawiły się dywizje III korpusu gen. Vandamme’a (8 dywizja gen. Lefola i 10 dywizja gen. Haberta). Lewe skrzydło armii na zachód od Saint Amand i Wagnele tworzyły pozostałe dywizje III korpusu: 7 dywizja gen. Girarda i 11 dywizja gen. Berthezene’a, a na samym końcu lewego skrzydła rozwinęła się 3 dywizja lekkiej jazdy gen. Domona.
We Fleurus cesarz umieścił swój odwód, który składał się z gwardii cesarskiej, IV korpusu ciężkiej jazdy gen. Milhauda oraz 96 dział. Rezerwy te liczyły ponad 22 000 ludzi.
Początek bitwy
Bitwa rozpoczęła się od potężnego przygotowania artyleryjskiego Francuzów. Po pewnym czasie ruszyły dywizje Vandamme’a, które natychmiast dostały się pod ogień artylerii pruskiej. Francuska nawała artyleryjska przeniosła się teraz na pozycje pruskiej artylerii. Coraz bardziej uwidaczniała się przewaga ogniowa Francuzów. W końcu piechurzy Vandamme’a wdarli się do pruskich okopów.
Tymczasem dywizje francuskiego lewego skrzydła uderzyły na Wagnele oraz Saint Amand i zdobyły te miejscowości, jednak kontratak odwodowych batalionów pruskich odrzucił nieco dywizje Lefola i Berthezene’a. Prusacy odtworzyli ciągłość obrony, ale Wagnele i część Saint Amand pozostało w rękach francuskich. Blücher chciał jednak odzyskać utracony teren i posłał do walki kolejne jednostki. Gen. Tippelskirchen poprowadził 5 brygadę na Saint Amand, a jazda gen. Jürgasa spróbowała odbić Wagnele. Oba kontrataki skończyły się niepowodzeniem, gdyż Prusacy dostali się pod morderczy ogień francuskiej artylerii i ponieśli ciężkie straty.
Po nieudanych próbach odzyskania terenu Blücher począł ściągać z rejonu Sombreffe świeże siły, by uzupełnić nadszarpnięte odwody. Napoleon, widząc, że Prusacy osłabiają centrum i przerzucają siły na swoje prawe skrzydło, wysłał kawalerię Pajola i tzw. dywizję młodej gwardii do pozorowanego ataku na Tongrinne. Podstęp się udał i zmyleni Prusacy zaprzestali przerzutu wojsk.
Po sukcesie lewego skrzydła Napoleon przeniósł główny ciężar walk na zdobycie Ligny. Toczono tu ciężkie walki, szczególnie w okolicy kościoła i cmentarza, który kilka razy przechodził z rąk do rąk. W końcu dwa odwodowe bataliony Henkla przebiły się przez luźną tyralierę francuską i uderzyły na atakujące w drugiej linii zwarte kolumny piechoty. Atak się kompletnie nie powiódł i oba bataliony zostały rozniesione na francuskich bagnetach. Do kolejnego kontrataku Blücher rzucił cztery bataliony z 6 brygady Kraffta, ale i te szybko zostały rozbite. Siły Prusaków powoli się wyczerpywały, ale Blücher nie rezygnował, chcąc za wszelką cenę utrzymać zwartą linię obrony. Po raz kolejny do ataku poszły bataliony Kraffta. Walka o Ligny trwała nadal.
W czasie zażartych walk o Ligny Blücher spróbował raz jeszcze odbić Saint Amand. Gdy do Ligny poszła 8 brygada płk. von. Langena, na Saint Amand uderzyła 5 brygada gen. von Tippelskirchena i zdołała odebrać wzgórza w okolicach wsi. W tym samym czasie 10 pułk huzarów magdeburskich rozbił dwa bataliony francuskiej piechoty, nie wytrzymał jednak ataku strzelców konnych i rozpoczął odwrót. Po chwili do odwrotu zmuszono także 5 brygadę. Teraz do osłony prawego skrzydła Blücher musiał ściągać siły aż spod Mazy, które było daleko na lewym skrzydle armii pruskiej.
Atak gwardii cesarskiej
Napoleon doskonale widział, że Prusacy wyczerpali swoje odwody i zamierzał użyć gwardii do zadania ostatecznego ciosu. Cesarz czekał na przybycie I korpusu d’Erlona na tyły armii pruskiej, który zablokowałby drogę ucieczki rozbitej armii. Gdy do uderzenia formowały się bataliony gwardii, na północnym zachodzie dostrzeżono wreszcie I korpus. Jednak po chwili żołnierze d’Erlona zmienili kierunek marszu i odeszli w stronę Quatre Bras, jak już wiemy wezwani przez marsz. Neya.
Tymczasem o godzinie 19.30 ruszył pruski atak przygotowany przez gen. Thielemanna. Jego zadaniem było zniszczenie flankowym uderzeniem walczących w Ligny dywizji Gérarda. Do ataku ruszyła landwera płk. von Lucka wsparta przez 7 pułk dragonów i 7 baterię artylerii pieszej. Gdy grupa ta przeszła przez strumień Ligny, gen. Exelmans wysłał im naprzeciw swoich dragonów. Francuska ciężka jazda rozniosła w pył pruskich dragonów i zaczęła się rzeź zaskoczonych piechurów i artylerzystów. W pościgu Francuzi dotarli aż do Sombreffe, gdzie zostali w końcu odparci przez 9 brygadę gen. von Borckego.
Pruska armia była już u kresu wytrzymałości. Napoleon zdecydował, że nie może dłużej czekać na korpus d’Erlona i bez dalszej straty czasu postanowił dobić przeciwnika. Około 20 na pole bitwy przybył VI korpus gen. Lobau, który z marszu rozwinął się do walki. Po 20.30 ruszyło wreszcie 8 batalionów gwardii, które weszły w wolną przestrzeń pomiędzy Saint Amand i Ligny i uderzyli w kierunku Brye. Na nic zdały się rozpaczliwe kontrataki walczących jeszcze brygad von. Jagowa i Steinmetza. Pierwsza linia pruskiej armii rzuciła się do panicznej ucieczki. W pościg za uciekającymi ruszyli kirasjerzy Milhauda. Blücher rzucił jeszcze do ataku resztki jazdy, ale lekka kawaleria nie miała szans z ciężko opancerzonymi jeźdźcami francuskimi. Gwardia rozbijała ostanie punkty oporu. W końcu Blücher dał za wygraną i opuścił pole bitwy.
Podsumowanie
Armia pruska straciła 12 000 zabitych i rannych oraz 21 armat. Nadchodzące meldunki potwierdzały, że Prusacy są kompletnie rozbici i wycofują się w bezładzie. Cesarz przypuszczał więc, że w ciągu najbliższych trzech dni Blücher nie podniesie się z klęski. W tym czasie zamierzał zniszczyć armię Wellingtona. Popełnił jednak błąd i nie docenił przeciwnika. Blücher zdołał opanować chaos już następnego dnia rano i zaczął sprawnie cofać się na Wavre. Miało to decydujący wpływ na wynik bitwy pod Waterloo stoczonej dwa dni później.