Por su heroico comportamiento fue destinado a Cuba, donde ocupó el cargo de capitán general interino de la isla en 1867, y como titular desde 1870 hasta 1872.
Durante su mandato tuvo que enfrentarse a una situación insular difícil: por un lado, la Guerra de los Diez Años que había estallado en la isla y, por otro, las presiones de los militares y peninsulares que en la isla demandaban mano dura contra los intentos separatistas.
Por su política violenta contra la población civil cubana, sin que ello afectase el curso de la guerra, fue obligado a dimitir, siendo sustituido por Francisco de Lersundi y Ormaechea.
En diciembre de 1874 proclamó la restauración en Ciudad Real, al tiempo que Martínez Campos lo hacía en Sagunto.
En este nuevo tercer mandato en la isla tuvo que proseguir los combates contra los independentistas cubanos hasta 1876, en que nuevamente dimitió y fue sustituido por Joaquín Jovellar.