Řeka pramení na ledovci Gangotri, který se nachází v oblasti Garhwal v Himálaji. Ganga protéká severní Indií a končí v Bengálském zálivu na východě Indie. Celkem měří 3 877 km, což z ní činí jednu z nejdelších řek na světě. Její povodí má rozlohu 907 000 km². Hlavní řeky, které se do Gangy vlévají, jsou Brahmaputra, Gomti, Kosi, Gandak, Ghaghra, Jamuna a Son.
Ganga protéká Himálajem v délce pouhých 200 km. Řeka se dotýká rovinaté krajiny v oblasti Rišikéš poblíž Haridváru v Uttarkhandu. Dále protéká městy Kánpur, Soron, Kannauj, Allahabad, Varanasi, Patna, Ghazipur, Bhagalpur, Mirzapur, Ballia, Buxar, Saidpur a Chunar. V Allahabadu se řeka spojuje s Jamunou. U Pakuru se řeka dělí na dva rozvodí, a to Bhágiráthí-Hoghlí a hlavní tok. Bhāgirathi-Hooghly v pozdějším toku tvoří řeku Hooghly. Hlavní tok Gangy vtéká do Bangladéše. Nedaleko hranic s Bangladéšem se nachází přehrada Farakka, která reguluje tok Gangy tím, že část vody odvádí do přívodního kanálu, který je spojen s řekou Hooghly, aby byl relativně bez nánosů.