Uno de los principales ríos que atraviesan la ciudad casi en su totalidad es el San Lucas, el cual discurre de noroeste a sureste para finalmente desembocar en el río Mashcon, cuyo cauce marca la frontera entre los distritos de Cajamarca y Baños del Inca.