Aunque el litoral de Perú se encuentra dentro de la zona tropical, no muestra un clima ecuatorial, las temperaturas promedio varían de 21 grados en enero a 10 grados en junio en Lima. En Cuzco, en la sierra, el rango es solo de 12 a 9 grados, mientras que en Iquitos, en la región amazónica, la temperatura promedio es de alrededor de 32 grados todo el año. La fría corriente sur-norte de Humboldt enfría las brisas del océano, produciendo una niebla marina con los vientos costeros en la llanura costera. Solo durante el invierno, de mayo a octubre, esta niebla de mar (garúa) se condensa en aproximadamente 5 cm de lluvia.
La latitud tiene menos efecto sobre el clima de la sierra que la altitud. La temporada de lluvias en los Andes se extiende de octubre a abril, lo contrario del clima costero. En la selva tropical del este, la precipitación es intensa, de 190 a 320 cm por año, la lluvia cae casi continuamente entre octubre y abril.
Una cálida corriente del oeste al este del Pacífico llamada El Niño aparece cerca de la costa peruana cada cuatro o diez años alrededor de la Navidad (el nombre es una referencia al niño Jesús), causando ocasionalmente graves alteraciones climáticas.