В 10:00 часов внушительная испанская эскадра разделилась на две группы и построилась в форме буквы "V". Одну сторону на севере образовали "Нумансия", "Ресолусион" и, прибывшая накануне сражения, "Альманса" со 137 орудиями. Вторая сторона из фрегатов "Вилья де Мадрид", "Беренгела" и "Рейна Бланка", со 122 орудиями двинулась на юг гавани. Канонерская лодка "Венседора" и транспортные суда были оставлены в тылу эскадры.[* С испанской стороны в битве участвовал Патрисио Монтехо - будущий командующий испанским флотом на Филиппинах во время испаноамериканской войны 1898 г.]
К 12:15 маневрирование эскадры было завершено, и флагманский броненосец начал обстрел. Форт Санта-Роза немедленно ответил. Началось сражение. Десять минут спустя перуанский снаряд пробил броню батареи "Нумансии" и разорвался. Из строя вышли пушки борта, и броненосцу пришлось разворачиваться другим для продолжения стрельбы. Но когда этот маневр был завершен, в корабль попало еще два снаряда, один из которых повредил броневую рубку и ранил Мендеса Нуньеса. Корабль вышел из боя на 15 минут, но затем вновь сблизился с берегом и подавил огонь одной из батарей с наиболее опасными для себя нарезными пушками Блэкли.
В башне Ла-Мерседе с двумя нарезными 300-фунтовыми армстронговскими орудиями, где располагался штаб военного министра Перу Гальвеса, произошел несчастный случай. Неосторожное обращение с боеприпасами привело к взрыву. Гальвес и еще 20 человек мгновенно погибли.
Обе стороны проявляли мужество и героизм. Фрегат "Вилья де Мадрид" был поражен разрывным 11 -дюймовым 450-фунтовым снарядом пушки Блэкли. Сразу погибло 27 человек, был перебит паропровод. Канонерка "Венседора" отбуксировала обездвиженный корабль из зоны поражения. На фрегате "Альманса" попадание в пороховой погреб убило 13 человек. Боезапас только чудом не детонировал. Поврежденный фрегат также вышел из боя. На фрегате "Беренгела" 300-фунтовый перуанский снаряд пробил борт по ватерлинии, и тонущее судно отошло.
Потеряв двух своих сотоварищей, "Альманса" присоединилась к южному отряду. Около 14:30 на фрегатах "Рейна Бланка" и "Ресолусион" истощился запас снарядов, и они отошли, оставив "Нумансию" и "Апьмансу" одних перед батареями. На "Рейна Бланка" дважды происходил пожар в районе крюйт-камеры. В 16:30 последние два корабля прекратили огонь и отошли, но перуанцы стреляли по ним до тех пор, пока те находились на расстоянии выстрела.
Около 17:00. перестрелка закончилась. Перуанские пушки поразили противника 185 раз. Сильно поврежденные испанские корабли так и не смогли заставить замолчать береговые батареи. Эскадра Мендеса Нуньеса была вынуждена отойти к острову Сан Лоренсо. Было зафиксировано следующее количество попаданий: "Рейна Бланка" - 30, "Ресолусион" - 30, "Нумансия" - 51 , "Альманса" - 72, "Беренгела" и "Венседора" - по 2. Погибло 50 испанских моряков, 83 было тяжело и 68 легко ранено. Сам Мендес Нуньес получил ранение в бою. Два фрегата пришлось отбуксировать на мель острова Сан-Лоренсо для спасения от затопления. Перуанцы потеряли около 200 человек, однако город и порт пострадали мало. Перуанские корабли были поражены испанцами 13 раз и потеряли 2 человека убитыми и 3 ранеными.
Перуанские броненосные корабли действовали как плавучие батареи на якоре. Пушки испанцев поразили "Лоа" десять раз, но броня выдержала попадания, и корабль не пострадал. Единственным пострадавшим членом экипажа броненосцев стал раненый лейтенант Мануэль Арриага, когда 200-мм цельное ядро попало в монитор "Виктория". Броня выдержала удар, однако внутри башни оторвалась несколько головок болтов, на которых крепились броневые плиты, и они поразили перуанского офицера.
Испанцы заявили о победе, однако так как цели операции достигнуты не были, то итоги сражения можно оценить как стратегическую победу перуанцев. Испанская эскадра была более не способна проводить какие-либо операции, в то время как флот союзников полностью сохранил боеспособность.
Тем временем, в Атлантическом океане испанцы столкнулись с новой угрозой: там появился перуанский броненосец "Уаскар".[* Характерно, что Магелланов пролив "Уаскар" проходил с американским корветом.] 5 мая у берегов Уругвая он захватил два испанских вспомогательных корабля. Продолжение набегов на южноамериканские порты могло привести только к дальнейшей порче или даже потере кораблей. Испанскую эскадру требовалось ремонтировать, боеприпасы, уголь и продовольствие были на исходе. В итоге, командование приняло решение об освобождении островов Чинча и отходе.
10 мая испанская эскадра разделилась на две группы. Четыре фрегата и "Нумансия" двинулись на Филиппины, остальные корабли направились на юг и рассредоточились в нейтральных портах Бразилии и Уругвая. Последним успехом испанской эскадры можно было назвать прорыв нескольких кораблей вокруг мыса Горн