11 czerwca miała miejsce bitwa na rzece Parana pod Riachuelo. Brazylijska flota dowodzona przez Francisco Manuela Barroso da Silva wygrała i poważnie osłabiła flotę paragwajską i zapobiegła stałej okupacji Argentyny przez Paragwaj. Bitwa ta praktycznie przesądziła o dalszych losach wojny, bo umożliwiła sprzymierzonym kontrolowanie ujścia La Platy. We wrześniu Paragwajczycy ponieśli kolejną porażkę pod Uruguaianą. W styczniu następnego roku sprzymierzeni przekroczyli rzekę Parana i 24 maja 1866 roku rozbili armię Lopeza w bitwie pod Paso de Patria. Mimo porażki dyktator zreorganizował swoje siły. W krwawej bitwie pod Curupayty 22 września 1866 Paragwajczycy rozgromili wojska przeciwnika. W walce stracili zaledwie 54 ludzi przy prawie 9 tys. po stronie sprzymierzonych.