Atak osłaniała olbrzymia artyleria. Setka dział, rozstawiona na odcinku 2 kilometrów (tzn. 1 armata na ok. 20 m), rozpoczęła największą w czasie wojen napoleońskich kanonadę. Łącznie podczas całej bitwy Francuzi zużyli 96 000 ładunków artyleryjskich. Dla porównania pod Borodino zużyli ok. 91 000 ładunków, a pod Lipskiem 89 000 (bitwa pod Lipskiem trwała 3 dni). Ostrzał ten znacznie zaszkodził wojskom austriackim. Próby powstrzymania francuskiego natarcia spełzły na niczym.
Po nieudanej szarży austriackiej ciężkiej jazdy, która zaatakowana przez kirasjerów w czasie ucieczki wpadła na własną piechotę, do ataku ruszyła francuska kawaleria. Przełamała częściowo opór przeciwnika, reszty dokonała piechota. W końcowej fazie natarcia dużą rolę odegrali polscy Szwoleżerowie Gwardii, atakując austriackich ułanów, pochodzących w większości z ziem zabranych Polsce.