Существенную тактическую роль в этом сражении играл канал Навиглио-Грандо. К западу от Мадженты он представлял выемку, глубиной 10–13 метров, с очень крутыми берегами, местами представлявшими отвесную каменную стенку; глубина воды в канале достигала почти 2 метров, при ширине русла свыше 8 метров; течение было быстрое. Это было почти непроходимое в условиях полевого боя препятствие. Через него имелось 4 моста: у Бофалоры, новый Маджентский мост на шоссе, железнодорожный мост и старый Маджентский мост. Командир I австрийского корпуса, готовясь к наступлению на Турбиго, уже накануне сражения отдал приказ уничтожить все мосты для обеспечения своего фланга. Слабые мосты — у Бофалоры и старый Маджентский — были действительно уничтожены. Что же касается до прочных шоссейного и железнодорожного, то для их взрыва был затребован порох, но приготовления к взрыву не были закончены. Пехота I корпуса расположилась поэтому перед самыми мостами, на высотах, обрывающихся в долину Тичино.
В 8 часов утра гвардейская дивизия Мелинэ, переправившись у С.-Мартино через Тичино, начала движение к Навиглио-Гранде. Несколько пушечных выстрелов австрийцев убедили Наполеона III, что фронтальная атака через канал будет затруднительна, что противник, по-видимому, сильнее, чем предполагалось; Наполеон III приостановил движение Мелинэ, выжидая появления Мак-Магона; последнему в Турбиго был послан приказ ускорить наступление.
Мак-Магон выступил в 9 часов утра; часть его сил задерживалась у Турбиго в ожидании сардинцев, которые должны были его поддержать и прикрыть его сообщения у Турбиго со стороны Урбана; а сардинцы, задержанные различными недоразумениями, появились с большим запозданием. Около 12 часов дня головная дивизия Мак-Магона обнаружила против себя сторожевое охранение австрийцев и начала развертываться у Казате; две французские батареи открыли оживленный огонь. Авангардный полк алжирских стрелков, преследуя австрийские заставы, вопреки приказу Мак-Магона, бросился на Бофалору, но был отражен. Мак-Магон приостановил наступление своих войск вплоть до окончания систематического развертывания; его трех дивизий и подхода одной сардинской дивизии, что затянулось до 16 час. дня.
Наполеон III, заслышав после полудня пушечные выстрелы Мак-Магона за Бофалорой, приказал гвардейской дивизии Мелине возобновить наступление. Хотя все внимание графа Клам-Галасса, комкора I, объединявшего командование и II корпусом, было обращено не на Мак-Магона, которого ему было поручено атаковать, а на оборону Навиглио-Гранде, все же дивизии Мелине, атаковавшей на широком фронте от Бофалоры до старого Маджентского моста всюду удалось сбить венгров I корпуса, овладеть западным берегом Навиглио-Гранде и перебежать на плечах австрийцев через шоссейный и железнодорожный мосты, занять и приспособить к обороне ближайшие дома; французы начали распространяться и дальше, но в 14 час. 30 мин. дивизия Рейшаха (VII корпуса) стремительным ударом отбросила их к мостам и за канал. Другая дивизия VII корпуса и резервная кавалерия, к востоку от Мадженты, оставались в бездействии в течение всего сражения.
Гиулай не имел оснований рассчитывать на вступление в этот день в бой V и VIII корпусов, которым предстояло еще совершить предварительно переход; тем не менее он не попытался около полудня отвести I, II, VII корпуса из района Мадженты, где им приходилось выдерживать бой хотя и на сильной позиции, но на два фронта. Он обратил внимание на то, что французы, атакующие Навиглио-Гранде, подставляют ему свой правый фланг, и приказал III корпусу, от Робекко, ударить во фланг французам вдоль канала, главным образом, по западному его берегу. III австрийский корпус успешно вступил в бой около 15 час., однако успел развернуть достаточные силы только к 16 часам. Между тем, к С.-Мартино начали подходить части III и IV корпуса. Одна дивизия последнего вклинилась между авангардом III корпуса и его главными силами; голова их поспела как раз вовремя, чтобы у старого Маджентского моста встретить фланговый удар австрийцев. Австрийцам удалось было приблизиться к железной дороге, но затем они были оттеснены за старый Маджентский мост. Бой продолжался до ночи с переменным успехом. С 17 ч. 30 мин. начал подходить V австрийский корпус; головные его части успению вступили в бой.