De rivier ontspringt aan een gletsjer, de Gangotri-gletsjer, die in de Garhwal-regio in de Himalaya ligt. De Ganges stroomt door Noord-India en eindigt bij de Golf van Bengalen in Oost-India. In totaal is de Ganges 3.877 km lang en is daarmee een van de langste rivieren ter wereld. Haar stroomgebied is 907.000 km² groot. De belangrijkste rivieren die in de Ganges uitmonden zijn de Brahmaputra rivier, de Gomti, de Kosi rivier, de Gandak, de Ghaghra rivier, de Yamuna rivier en de Son rivier.
De Ganges stroomt slechts 200 km door de Himalaya. De rivier raakt vlak land in de regio Rishikesh bij Haridwar in Uttarakhand. Daarna passeert zij de steden Kanpur, Soron, Kannauj, Allahabad, Varanasi, Patna, Ghazipur, Bhagalpur, Mirzapur, Ballia, Buxar, Saidpur, en Chunar. Bij Allahabad komt de rivier samen met de Yamuna. Bij Pakur splitst de rivier zich in twee zijrivieren, namelijk de Bhāgirathi-Hooghly en de hoofdstroom. De Bhāgirathi-Hooghly vormt in de latere loop de rivier Hooghly. De hoofdstroom Ganges komt Bangladesh binnen. Dicht bij de grens met Bangladesh houdt de Farakka-barrage de stroom van de Ganges onder controle door een deel van het water om te leiden naar een toevoerkanaal dat in verbinding staat met de Hooghly-rivier om deze relatief slibvrij te houden.