Vivero está encajado en un valle por el que discurre el Río Landro, y rodeado a este y oeste por montañas de elevada diferencia de altitud.