Для Польщі характерна густа річкова мережа. Найдовша річка країни - Вісла довжиною 1030 км з притоками Сян, Вепш і Буг (Західний Буг); Одер, яка є складовою частиною західного кордону Польщі - 854 км. Значні ріки країни: Варта - 808 км (притока Одера), Буг та Сян (притоки Вісли) 772 і 443 км, відповідно.
Вісла та Одер впадають у Балтійське море, як і численні малі річки в Померанії. Лина і Анграпа впадають в Преголь, а Чарна Гандзя - в Німан, які несуть свої води до Балтійського моря. Хоча переважна більшість рік в Польщі течуть у напрямку до Балтійського моря, натомість в польських Бескидах беруть свій початок верхні притоки річки Орава, яка впадає в Ваг і несе потім свої води до Дунаю і в Чорне море. На краю Східних Бескидів беруть свій початок потоки, які впадають в Дністер басейну Чорного моря.
Озера рінин Польщі за походженням здебільшого льодовикові та розташовані в основному в північній частині країни, згрупованих у районах, так званих озерних краях. В Польщі налічується майже десять тисяч закритих водойм, що охоплюють більше 1 га (2,47 акри) кожне. Польща відноситься до країн з великою кількістю озер (на одиницю площі). У Європі лише Фінляндія має більшу щільність озер.
Найбільші озера (з площею понад 100 квадратних кілометрів): Снярдви і Мамри в Мазурії, а також Лебско та Дравсько в Померанії. На додаток до цих озер є цілі озерні краї (у Вармінсько-Мазурському, Поморському, Любуському, Великопольському воєводствах), існує також велика кількість гірських озер в Татрах, наприклад Морське Око. Озеро з найбільшою глибиною - понад 100 метрів - озеро Гандзя у озерному краї Вігри, на схід від Мазурії в Підляському воєводстві.