Nace en el alto de San Miguel, en el municipio de Caldas, a una altura de 3.000 msnm; tiene una extensión aproximada de 100 km desde su nacimiento hasta su desembocadura (donde confluye con el río Grande y le dan nacimiento al Porce) y recibe las aguas de aproximadamente 196 afluentes a lo largo de todo su recorrido.