The Chulym is formed by several tributaries in the Toyskoye Zaymishche (russian: Тойское Займище) and Troshinskoye Zaymishche (russian: Трошинское Займище) swamps north of Baraba Steppe, some 100 km northwest of Novosibirsk, at an elevation of 150 meters. The river flows over the Baraba Steppe in a southwesterly direction, and flows through the lakes of Sargul (russian: Саргуль, 34,6 km²) and Uryum (russian: Урюм, 84,1 km²), before it finally terminates, at 106 meters elevation, in Malyye Chany Lake (russian: Малые Чаны – Little Chany), which is connected to Lake Chany through a short strait.
In its lower reaches the river is some 30 m wide and 5 m deep. Its main tributaries are the Suma River (left), and the Kargat River (right).
The Chulym is frozen over from November to April/May.