Au petit matin du 5 juillet, Napoléon ordonne de commencer le passage des troupes de l'île Lobau sur la rive gauche. Alors que les Autrichiens attendaient les Français sur une ligne de fortification entre Aspern et Essling (comme à la Bataille d'Essling), ceux-ci franchissent le Danube non par l'ouest de l'île, mais par l'est. Le général de brigade Conroux emmène ses grenadiers à l'assaut, utilisant des barques, et il sécurise la future tête de pont. Immédiatement après, les ponts préparés sont installés, et l'armée traverse, le IVe Corps de Masséna en tête. Tournées, les fortifications autrichiennes deviennent inutiles, et les défenseurs se replient sur le plateau de Wagram, qui forme un large arc de cercle depuis le Danube jusqu'à Neusiedel, en passant par Wagram. Les français viennent alors placer leurs troupes sur un arc de cercle concentrique, et, alors que le soleil sèche la pluie de la veille, Napoléon ordonne une attaque générale en balayage sur le plateau. Bernadotte fait avancer (lentement) les Saxons sur le plateau de Wagram haut de quelques mètres, traversant le ruisseau du Goldbach, qui coule à son pied. Le général de division Dupas mène sa division mixte de soldats saxons et français au combat. Il percute et enfonce les lignes autrichiennes, avant d'être stoppé devant Wagram par une contre-attaque. Lorsqu’ils parviennent à la crête, la deuxième vague, constituée par les Italiens de Macdonald, prend les uniformes blancs saxons pour ceux des Autrichiens, et tirent sur eux. Les Saxons, pris entre deux feux, reculent vers les forces de Macdonald qui croient à une charge et le désordre s’installe. Oudinot et son IIe Corps, qui devaient soutenir l'attaque, doit reculer pour s’aligner sur la nouvelle ligne. Les positions se stabilisent pour la nuit, mais les restes épars des troupes saxonnes ont perdu toute valeur combative, abandonnant des blessés dans le village d'Aderklaa, face à Wagram, qu'elles auraient pu garder et qui sera le lendemain théâtre de nombreux combats.
Au petit matin du 6 juillet, l'archiduc Charles prend l'initiative de l'attaque. Cependant, par jeux des aides de camp et retard des ordres, l'offensive principale est déclenchée à gauche avant ce qui devait être la diversion, à droite, qui part donc en retard sur l'horaire. Davout, attaqué sur la droite française, prend l'offensive et repousse le IIe Corps de Rosenberg avec son 3e corps, qui compte parmi les meilleures troupes de la Grande Armée. Au centre, Masséna doit lutter pour reprendre le contrôle d'Aderklaa, ne laissant que la division Boudet pour défendre la gauche française, où une grosse force autrichienne, sous Klenau, attaque. Pour sauver son centre, Napoléon réunit 60 pièces de tous calibres de la Garde Impériale, auxquelles s'ajoutent 40 pièces de l'armée d'Italie. Masséna marche alors plein Sud pour aider Boudet, couvert par les batteries qui se déchainent sur les autrichiens qui, impuissants, leur font face. Derrière la grande batterie, l'armée d'Italie de Macdonald se rassemble et, suivie par les bavarois de De Wrède et les soldats de la Jeune Garde, sous Reille, couverte par la cavalerie lourde de Bessières, lance l'attaque qui brise le centre autrichien. À 18 h l’archiduc Charles est obligé d’ordonner la retraite. La cavalerie française, épuisée et dispersée, ne peut pas poursuivre. Napoléon finira l'ennemi à la Bataille de Znaïm.