„Espírito Santo” jedną salwą zdołał zatopić egipską karakę, po czym doszło do sczepienia się z wrogimi okrętami i walki na ich pokładach (abordażu).

Wchodzące kolejno do portu portugalskie okręty przyłączały się do walki, angażując w walce artyleryjskiej na najbliższe odległości i abordażując największe z okrętów sprzymierzonych. Dzięki prowadzeniu walki w stosunkowo wąskim kanale portowym, sprzymierzeni nie mogli wykorzystać przewagi liczebnej mniejszych okrętów, które musiały być stłoczone w głębi kanału portowego na niewielkiej szerokości. Walkę artyleryjską z mniejszymi okrętami wziął na siebie przede wszystkim flagowy „Flor do Mar”, który nie uczestnicząc w abordażu głównych okrętów, wszedł najdalej do kanału portowego, stanowiąc zaporę dla okrętów sprzymierzonych znajdujących się w głębi kanału.

Bitwa zakończyła się miażdżącym zwycięstwem Portugalczyków. Nie tracąc żadnego okrętu, zatopili 2 egipskie galeony, 2 egipskie i 2 gudżerackie karaki, zdobyli dalsze 2 egipskie i 2 gudżerackie karaki oraz 2 galery i zatopili kilka mniejszych okrętów, zdobywając wiele z nichA Chronicle of the Battle of Diu [dostęp 2012-12-13].. Portugalczycy stracili jedynie 32 zabitych, w tym kapitanów okrętów „Nuno Vaz Pereira” i „Pêro Cão”, ponad 300 ludzi odniosło rany.