O rio parte de uma geleira chamada Gangotri Glaciar, que fica na região de Garhwal, nos Himalaias. O Ganges corre pelo norte da Índia, e termina na baía de Bengala, no leste da Índia. No total, ele flui 3.877 km, tornando-o um dos rios mais longos do mundo. Sua bacia hidrográfica tem 907.000 km² de largura. Os principais rios que desembocam no Ganges são os rios Brahmaputra, Gomti, Kosi, Gandak, Ghaghra, Yamuna e Son.
O Ganges percorre apenas 200 km através do Himalaia. O rio toca terra plana na região de Rishikesh, perto de Haridwar, em Uttarakhand. Depois passa pelas cidades de Kanpur, Soron, Kannauj, Allahabad, Varanasi, Patna, Ghazipur, Bhagalpur, Mirzapur, Ballia, Buxar, Saidpur, e Chunar. Em Allahabad, o rio se une ao rio Yamuna. Em Pakur, o rio se divide em dois distribuidores, ou seja, o Bhāgirathi-Hooghly e o rio principal. Bhāgirathi-Hooghly, no curso posterior, forma o rio Hooghly. O rio principal, o Ganges, entra em Bangladesh. Perto da fronteira com Bangladesh, a Barragem Farakka controla o fluxo do Ganges, desviando parte da água para um canal de alimentação que tem ligação com o rio Hooghly para mantê-lo relativamente livre de sedimentos.