[1][2] Su profundidad varía entre los 3-10 m, pero en algunas quebradas profundas en época de crecida puede llegar a alcanzar los 50-100 m. Su nombre significa literalmente «agua santa de la montaña sagrada», aunque Karnali también significa «río Turquesa».
El río es muy famoso por ser uno de los lugares más extremos para la práctica del ráfting.
El río surge en las laderas meridionales del Himalaya, en los glaciares de Mapchachungo, a una altitud de unos 3962 m, cerca del lago Mana Sarovar y el lago Rakes.
[3] Otros afluentes originarios de Nepal son los ríos Rapti y el pequeño Gandak.
Sale de la región montañosa, tras atravesar los montes Siwalik, por una espectacular garganta cerca de Chisapani y después el río se divide en una pequeña zona casi deltaica en numerosos canales, que finalmente resultan en dos ramas : el Geruva, a la izquierda, y el Kauralia, a la derecha.
Aquí vira hacia el sureste, llegando a Faizabad, Ayodhya (la capital del reino de Daśaratha), Tanda, Dohrigat y Chilupar.
Llega a un tramo en el que el río, hasta su desembocadura, será la frontera natural entre los estados de Uttar Pradesh, al suroeste, y Bihar, al noreste.
La cuenca del Karnali se encuentra entre las sierras del Dhaulagiri y el Nanda Devi, en la parte occidental de Nepal y drena parte de la lluvia que se recoge en el Himalaya.
[7] En la India, los distritos administrativos en la cuenca del Ghaghra son, en el estado de Uttar Pradesh, Ambedkarnagar, Azamgarh, Barabanki, Basti, Ballia, Bahraich, Deoria, Faizabad, Gonda, Gorakhpur, Sant Kabir Nagar, Jaunpur, Kheri, Lakhimpur y Sitapur; y en el estado de Bihar, el distrito de Siwan.