El municipio de San Xoán de Río, considerado de montaña, está situado al sureste de Galicia y al noreste de la provincia de Ourense. Limita al norte con Ribas de Sil (Lugo); al este con los ayuntamientos de Ribas de Sil y de Pobra de Trives; al sur con Pobra de Trives y Chandrexa de Queixa y al oeste con Castro Caldelas.
Tiene una superficie de 61,7 kilómetros cuadrados y está formado por 59 núcleos poblacionales, integrados en nueve parroquias. La capitalidad del municipio está situada en O Campo, en la parroquia de San Xoán de Río.
El ayuntamiento se extiende desde la Sierra de A Moa hasta el río Navea, destacando además las elevaciones de O Seixo y la Sierra de Castrelo, con alturas superiores a los mil metros. Junto a A Moa y O Cerengo nacen riachuelos que, formando cursos de agua, recorren el municipio hacia el valle del río Navea.
En cuanto a la flora de la zona hay que destacar la coexistencia de arboledas con monte bajo. De entre los primeros destaca la fraga, bosque de grandes dimensiones en el que hay robles, castaños y otros árboles autóctonos. El monte bajo está representado por las retamas, carquesias y tojos.
Dentro de la fauna destaca la gran abundancia de jabalíes.
El clima es oceánico, debido a la elevada altitud y a la gran distancia que hay entre el ayuntamiento y la costa. La proximidad a Cabeza de Manzaneda ejerce una gran influencia en el carácter frío de la zona.