Só em 1868 as ofensivas foram retomadas, em virtude da chegada do Duque de Caxias ao fronte da guerra. Caxias, vendo a indisciplina dos soldados da tríplice-aliança, conduziu uma reforma no exército, transformando um amontoado de tropas em um exército realmente profissional. Em 5 meses do comando de Caxias, Humaitá se rendeu, e um ano depois as tropas aliadas entravam em Assunção. López, porém, tinha fugido da cidade, o que iniciou a terceira fase do conflito, a caça a Solano López.
Em 1870 o Conde D’eu, genro do imperador, chega para substituir o Duque de Caxias, indicado ao cargo de presidente do conselho de ministros, no comando da guerra, com a missão de capturar López vivo ou morto, um pedido pessoal do imperador. No mesmo ano, as forças de López foram derrotadas na batalha de Cerro Corá, onde este foi morto, se encerrando assim a guerra.