Le Tessin est le principal fleuve du canton. Son bassin versant couvre une grande partie du territoire, s'écoulant du nord-ouest à travers le Val Bedretto et la Valle Leventina, pour entrer dans le lac Majeur à la "Bolle di Magadino". Ce dernier est une zone marécageuse, non loin de Locarno, où se trouve une réserve naturelle d'importance nationale, constituée des embouchures des rivières Tessin et Verzasca. La Reuss, rivière appartenant au bassin du Rhin, prend sa source dans le canton, non loin du col du Gothard.