Él Llegó al Virreinato de Perú en agosto de 1816 como capitán de la compañía de preferencia del "Batallón Expedicionario Gerona" que mandaba el coronel Alejandro González Villalobos, pasó a servir en el Ejército del Alto Perú, en 1817 fue ascendido a teniente coronel y se le encargó el mando de la provincia de Tarija, donde hubo de hacer frente primero a las guerrillas altoperuanas al mando del caudillo Uriondo a quien logró derrotar y luego a la división del comandante Gregorio Araoz de Lamadrid que puso sitio a Tarija y obtuvo la rendición de la plaza en mayo de ese año. Fue enviado prisionero junto a su subordinado el capitán Andrés de Santa Cruz al depósito de las Bruscas, de donde ambos lograron fugarse y reintegrarse al Ejército Real. Fue uno de los jefes firmantes de la intimación de Aznapuquio, que depuso al virrey Pezuela. Bajo el mando del general Canterac combatió en la batalla de Ica, por la cual fue ascendido a coronel. Una vez producida la sublevación del Callao, quedó al mando de la guarnición de Lima, recuperada de nuevo por los realistas el 29 de febrero de 1824, ciudad que tuvieron que abandonar definitivamente el 5 de diciembre, tras la derrota realista en Junín.