Jednakże, w przeciwieństwie do Valparaiso, miasto to było bronione przez dziewięć fortów, jeszcze z czasów kolonialnych, z 51 działami.
W przygotowaniach do obrony Callao zasłużył się polski inżynier Ernest Malinowski, który zaproponował umieszczenie części armat na ruchomych platformach, dzięki czemu osiągnięto większe pole ostrzału, utrudniając jednocześnie ich zniszczenie.
2 maja 1866 Hiszpanie przypuścili główny atak z morza na miasto, ostrzeliwując je przez cztery godziny. Także i tutaj spowodowali spore zniszczenia oraz unieszkodliwili większość baterii nadbrzeżnych, lecz również okręty hiszpańskie (przede wszystkim „Berenguela”, „Villa de Madrid” i „Almansa”) odniosły uszkodzenia od ognia obrońców. Zginęło 43 marynarzy, 157 odniosło rany, włącznie z admirałem Méndezem Núñezem. Znacznie więcej obrońców poniosło śmierć, włącznie z ministrem obrony Peru Jose Gálvezem.
Dalsze wydarzenia Mimo zniszczeń, ataki na Valparaiso i Callao nie odniosły jednak skutków w zakresie osłabienia woli walki Chile i Peru. Wobec bezcelowości dalszych działań, eskadra hiszpańska 10 maja 1866 odpłynęła z Ameryki Południowej na Filipiny.