Le , Thomas Cochrane commanda l'escadre de vingt-cinq navires qui transportèrent à Pisco les , , canons, munitions et provisions de l'expédition qui partit du Chili pour libérer le Pérou sous le commandement de José de San Martín. Des dissensions apparurent très vite entre Cochrane et San Martín. Le premier était favorable à une attaque frontale et rapide, persuadé depuis Valdivia de la faiblesse espagnole. Le second désirait une victoire des troupes terrestres qui ne devraient rien à personne d'autre qu'elles-mêmes, assurant ainsi une totale indépendance du Pérou. Il pensait aussi que les Espagnols étaient trop forts pour être affrontés. Il préférait soulever la population pour s'en faire une alliée décisive. Aussi, les troupes restèrent six semaines à Pisco avant de rembarquer fin octobre pour Ancón. Impatient, Cochrane décida d'attaquer de son côté sans consulter San Martín. Il résolut de s'emparer de la frégate espagnole "Esmeralda", le plus puissant navire de guerre en Amérique latine alors. Elle était ancrée dans le port de Callao, protégée par les canons des forts.