Los argentinos, al mando del general Manuel Belgrano, invadieron nuevamente el Alto Perú. El virrey del Perú José Fernando de Abascal, reorganizó el Ejército Real del Perú y en reemplazo de Goyeneche nombró al general español Joaquín de la Pezuela, recientemente llegado de la península ibérica. Belgrano continuó su avance y Pezuela resolvió atacarlo. Ocuparon los realistas las alturas de Vilcapugio, y descendiendo a la llanura, el 1 de octubre de 1813 al amanecer, se trabó una reñida batalla. El resultado parecía ya adverso a los realistas, cuando el primer regimiento del «Cuzco» conducido por Picoaga, y un batallón mandado por Pedro Antonio Olañeta hicieron prodigiosos esfuerzos y destrozaron el ala izquierda enemiga. En tan críticos momentos fue cuando el escuadrón de «Castro» atacó la retaguardia de Belgrano y alcanzó la victoria. A Picoaga se le concedió el rango de mariscal de campo en el mismo campo de batalla. El 14 de noviembre de ese mismo año, Pezuela obtuvo otro triunfo en Ayohuma, en donde también se distinguió Picoaga. Luego, este fue enviado a los departamentos de Puno y Cuzco a disponer el recojo de desertores y reclutar hasta dos o tres mil hombres para reemplazar las bajas, labor que evidentemente no correspondía a su alto rango. Al parecer, Pezuela le dio tal comisión para alejarlo, pues desconfiaba de los oficiales realistas nacidos en el Perú.