Narmada har sitt utspring i den nordlige delen av delstaten Madhya Pradesh, ved toppen av Amarkantak. Elven slynger seg over de første 320 km av sitt løp mellom åsene i Mandlahøylandet, som utgjør begynnelsen på Satpurafjellene. Den renner deretter forbi Jabalpur gjennom vakre marmorklipper (Bheraghat) som kiler seg inn mot Narmada elveløp. Elven renner deretter i sørvestlig retning gjennom dalen som dannes av Vindhya- og Satpurafjellene. Den rundt 20 km lange munningen ligger nord for Surat i Khambhatgulfen i Det arabiske hav.