Napoleon đã nhận định sai lầm, cho rằng quân Áo sẽ chạy về hướng Nam,
bèn ra lệnh cho quân đi chặn đường vào ngày hôm sau. Thế nhưng, Melas
cũng bất ngờ đưa ra quyết định sử dụng lực lượng ưu thế để đánh úp vào
ngay hôm sau, bố trí phía trước 100 khẩu đại bác để mở đường, sát theo sau
là 30,000 quân xung trận. Chỉ có 15 khẩu đại bác và hơn 20,000 binh lính,
quân Pháp lập tức tổ chức đánh trả. Hai bên chiến đấu kịch liệt tại Marengo.
Napoleon thấy quân Áo thực sự khó lòng đánh bại được, bèn chỉ huy quân
mình vừa đánh vừa rút lui, đồng thời phái người đi gọi quân của Desaix đến
chi viện. Cuộc chiến tiếp tục kéo dài đến chiều, quân Pháp vừa đánh vừa
lui, Melas cho rằng thắng lợi đã cầm chắc trong tay, bèn giao quyền chỉ huy
cho Tham mưu trưởng, còn mình rút về căn cứ. Tham mưu trưởng cũng
không tăng cường lực lượng đi truy đuổi, nhờ vậy quân Pháp rút lui thuận
lợi.
Chập tối, 5000 quân Desaix đã đến được chiến trường, Napoleon lập tức
phản công. Quân Áo hoàn toàn bất ngờ, trở tay không kịp, quân Pháp càng
đánh càng hăng, đánh cho quân Áo chạy tan tác. Lúc này đã xuất hiện kỳ
tích. Quân Áo từ thế thắng bỗng chốc biến thành tàn binh. Napoleon chuyển
bại thành thắng, buộc Merras phái người đến cầu hòa, hai bên đình chiến.
Cuộc chiến này khiến Áo tổn thất gần 10.000 quân, Pháp cung thương
vong gần 6000 người, tướng Desaix đến chi viện trong thời khắc quan trọng cũng
tử trận. Cuộc chiến này đã củng cố vị trí thống trị của Napoleon, thúc đẩy sự tan
vỡ của liên minh chống Pháp lần thứ hai.