El río Marañón nace en el suroeste del departamento de Huánuco en la provincia de Lauricocha, pero en cuanto al lugar exacto, hay dos proposiciones: Antonio Raymondi postuló de que nacía de los glaciares de la vertiente oriental de la cordillera de Huayhuash. Según Augusto Cardich nace en el glaciar del Nevado de Yapura, a unos 5.800 m ,en la cordillera Raura, en límite con Lima, en los andes del centro-norte peruanos.
De acuerdo a la segunda que es la más aceptada, desde su origen en la cordillera, a este pequeño curso de agua se le conoce como Río Gayco hasta fundirse en las lagunas de Santa Ana y Lauricocha, de donde sale de esta con el nombre homónimo. A partir de ese punto su recorrido es dirección norte, pasando por las localidades: Cauri, Jesús, Jivia, Huarin, Chavinillo, etc de las provincias de Lauricocha y Yarowilca. Recibiendo numerosos afluentes en su margen izquerda entre los más notables son el río Huayhuash, río Nupe en la localidad de Rondos a partir del cual pasa a llamarse Marañón y el río Vizcarra, el cual pasa por la ciudad de La Unión.
En la localidad de Jircan en la provincia de Huamalies, el río toma dirección noroeste haciendo de límite natural entre las regiones Ancash y Huánuco, es en donde recibe las aguas del río Mosna en su margen izquerdo. Más al norte Ancash-La Libertad, posteriormente en la segunda región separando las provincias liberteñas de Sánchez Carrión, Santiago de Chuco en su margen oeste a las provincias de Bolívar y Pataz, ubicadas en su margen este.
La característica orográfica en este tramo es la de un profundo cañón que erosiona la meseta andina con un desnivel de casi 3000 m entre las cumbres y la línea de agua. Además lo accidentado y estrecho de este recorrido impide el desarrollo de la actividad agropecuaria, quedando solamente la atracción de la característica orográfica.
En todo este recorrido de su curso alto y medio que finaliza en los pongos (se mencionara después), forma el principal valle interandino, entre las cadenas occidental y central de los andes del norte peruanos.
Luego de recorrer cerca de 1.600 km, se une con el río Ucayali, dando nacimiento al río Amazonas, cerca de la localidad de Nauta en el departamento de Loreto.
Sus afluentes más importantes son los ríos Utcubamba, Crisnejas, Chamaya, Cenepa, Santiago, Morona, Pastaza, Huallaga (1.300 km) y el Tigre (600 km).
Por su cantidad de cascadas y rápidos, es un río navegable sólo en su curso bajo.
En su cuenca habitan los famosos jíbaros.
Al surcar por el departamento de Amazonas cruza la región de los Pongos (un tipo de cañón angosto y profundo entallado) empezando aguas arriba por: pongo de Rentema, de Mayo, de Mayasita, Cumbianama, Huarcayo y el pongo de Manseriche, el más conocido de los pongos peruanos.
Esta región de los Pongos es muy importante por que de no existir el río Marañón no llegaría a juntarse con el río Ucayali para formar el río Amazonas, que no seria el río largo y caudaloso de hoy.
Por su gran longitud y por el terreno accidentado de su cauce, recorre diversos niveles altitudinales, generando una diversidad de ecosistemas en una determinada área reducida desde el clima en sus márgenes, cuya altitud depende de su ubicación geográfica hasta el clima casi frío de las cumbres correspondientes a las regiones Huánuco, Ancash, La Libertad y Amazonas.