The Crocodile River has its source in the Witwatersrand mountain range, originating in Constantia Kloof, Roodepoort, Gauteng province. The first dam it fills is the Lake Heritage Dam just west of the Lanseria Airport. Just north of this airport is its confluence with the Jukskei River. Further downstream into the North West two large dams are located in the river, namely Hartbeespoort Dam and Roodekoppies Dam. Beyond the Hartbeespoort Dam, it passes the town of Brits. The Elands River joins downstream from the Vaalkop Dam, about 20 km further the Pienaars River joins its right bank, shortly after exiting the Klipvoor Dam.