К 10 утра Баррошу удалось собрать людей с берега, и он отправился вниз по реке добивать парагвайский флот. В ходе этого движенья он затеял настолько мудреные перестроения, что флагман третьей дивизии «Жекотинонья» выскочила на мель прямо под жерла парагвайской батареи. Остальным судам удалось выстроиться в линию и начать обстрел парагвайской флотилии – до крайности не меткий. Около 11 часов шедший во главе бразильской колонны шлюп «Бельмонте» получил подводную пробоину и, заполняясь водой, выбросился на берег; прочие суда, истратив массу снарядов и пороха, спустились вниз по течению и вышли из сферы досягаемости огня парагвайских судов и батарей. И лишь шлюп «Парнаиба» под командованием капитан-лейтенанта Аурелиу Гарсинду Фернандиша де Са не покинул изнемогающую под артиллерийским и ружейным огнем с берега «Жекатинонью» и поспешил ей на помощь.
Месса решает, что наконец-то ему представился удобный случай. Взяв с собой сохранившие наибольшую боеспособность пароходы – «Парагуари», «Маркиза де Олинда» и «Сальтос Ориентал», он идет на своем флагмане «Такуари» на перехват «Парнаибы»; бразильский шлюп окружают с четырех сторон, осыпают снарядами и картечью и готовятся взять на абордаж; отчаянный Аурелиу да Са таранит «Парагуари» и разрывает смертельное кольцо, но корпус шлюпа получает слишком сильные повреждения, и Аурелиу приходиться посадить свой корабль на мель у острова Паламера. Рядом на берег выбрасывается изувеченный «Парагуари», но три оставшихся парагвайских корабля немедленно берут на абордаж «Парнаибу».
Наконец-то мачетеро бросаются на палубу вражеского корабля в предвкушении резни, но не тут-то было! Сказывается латинский характер: в безвыходном положении бразильцы демонстрируют чудеса героизма и сдают палубу пядь за пядью, обильно заливая ее своей кровью и кровью парагвайцев.
Экипаж «Парнаибы» перед боем насчитывал 262 человека; в атаке участвовало до 575 парагвайцев. Главный удар наносился с кормы; флаг «Парнаибы» защищали морской пехотинец Джон Уильям Гринхал, матрос Марсилиу Диаш, капитан 9-го пехотного батальона Педру Афонсу Ферейру и лейтенант того же батальона Фелисиану Инасьу Андраде Майа; все они были буквально изрешечены пулями и изрублены в куски, но не отступили ни на шаг.
После того, как все находившиеся на палубе бразильцы были перебиты, остатки экипажа «Парнаибы» укрылись в трюме и продолжали отстреливаться в то время как парагвайцы взламывали решетки световых люков. В этот момент Меса, который лично возглавлял атаку, получил пулю в живот; натиск парагвайцев ослаб, раненого командующего унесли на его флагман.
Примерно в это время (после 12:00) Баррошу опомнился, обратил внимание на то, что выше по течению идет яростный бой, распорядился поднять почти нельсоновский сигнал «Бразилия ожидает, что каждый исполнит свой долг», приказал развернуть «Амазонас» и идти к месту боя. За флагманом последовали «Арагуари», «Мериам» и «Беберибе».
По пути к гибнущей «Парнаибе» «Амазонасу» попался парагвайский пароходик «Хехуи»; бразильский фрегат протаранил его и буквально размозжил.
Следующим по курсу маячил «Перибебе». Его командир лейтенант Торибио Перейра не стал дожидаться участи своего сотоварища, бросил все еще буксируемую артиллерийскую баржу и ретировался вверх по течению. «Амазонас» тут же раздавил покинутую баржу и двинулся дальше.
«Маркиз де Олинда» и «Сальтос Ориентал» попытались прикрыть «Такуари», увозящего умирающего Мессу, но оба были столь же успешно протаранены «Амазонасом» и отправились на дно. «Арагуари» и «Беберибе» тем временем смели картечью с палубы многострадальной «Парнаибы» парагвайцев, высадили на залитый кровью шлюп десантные партии, которые вновь подняли над судном императорский флаг.
Истина открылась просто и страшно: в течение считанных минут парагвайцы были разбиты и их флот уничтожен. «Ипора» и «Игурей» успели напоследок обстрелять и зажечь «Жекотинонью»; экипаж бросил простоявший в течение всей битвы на мели корабль и вплавь добрался до подошедшей канонерки «Игуатеми».
«Жекотинонья» стала единственной потерей бразильцев; «Бельмонте» удалось снять с мели и вернуть в строй. Общие потери бразильцев составили 104 человека убитыми, 123 раненными и порядка 20 человек пропали без вести.
Потери парагвайцев – 4 парохода (причем все 4 погибли от тарана) и порядка 750 убитых, раненных и утонувших. Лопес был потрясен разгромом. Он хотел расстрелять Месу, но тот умер самостоятельно на 8-й день после сражения. Лопес его не простил и запретил офицерам присутствовать на похоронах этого доблестного человека, который ничего, кроме героизма и покорности приказам, не проявил.
После смерти Месы свалить вину за поражение решили на английских механиков, которые якобы не обеспечили нужный ход пароходам. Тех, кто уцелел в побоище при Риачуэло, казнили.
Это было опрометчивое решение. Лишившись последних специалистов, парагвайский флот перестал существовать как эффективная боевая сила, и больше ничем себя не проявил.