El municipio está atravesado por el curso del río Adaja, perteneciente a la cuenca hidrográfica del Duero —con nacimiento en el municipio de Villatoro— y que bordea a la ciudad por su lado oeste. El río Adaja discurre por el valle de Amblés en dirección oeste-este y la extensión de su cuenca es de unos 770 km². Por la ciudad, al sur, también circula el río Chico, un afluente del Adaja