Sông Hằng bắt đầu từ dãy núi Himalaya ở bang Uttarakhand, Ấn Độ. Sông Hằng tạo thành nơi sông Bhagirathi và sông Alaknanda gặp nhau.
Nước ở sông Bhagirathi đến từ băng tan từ sông băng Gangotri. Sau khi hợp lưu của sông Bhagirathi và sông Alaknanda, sông Hằng chảy qua một hẻm núi hẹp ra khỏi dãy Himalaya. Sau đó, sông Hằng chảy qua Ấn Độ, nơi nó được hợp lưu bởi nhiều phụ lưu. Sông Hằng chảy qua Rishikesh, Chunar, Kolkata, Mirzapur và Varanasi. Cuối cùng, sông đi vào Bangladesh và chảy ra Vịnh Bengal.