15 jezior w mieście. W granicach administracyjnych Olsztyna obecnie leży 15 jezior, z czego 14 przekracza 1 ha powierzchni. Łącznie wszystkie jeziora zajmują 725 ha, co równa się 8,25% powierzchni całego miasta. Największym i zarazem najgłębszym olsztyńskim jeziorem jest jezioro Ukiel, potocznie nazwane przez mieszkańców Krzywym. Jego powierzchnia wynosi 412 ha, a maksymalna głębokość dochodzi do 43 metrów. W pobliżu ulicy Jeziornej nad jeziorem Ukiel znajduje się plaża miejska Drugie co do wielkości jezioro w Olsztynie to Jezioro Kortowskie, które z jeziorem Ukiel połączone jest przez rzekę Kortówkę. Jego powierzchnia wynosi 89,7 ha, a maksymalna głębokość – 17,2 metry. Drugim co do głębokości olsztyńskim jeziorem jest Tyrsko, potocznie nazywane przez mieszkańców Olsztyna jeziorem Żbik. Maksymalna głębokość akwenu to 30,6 metrów, a jego powierzchnia – 18,6 ha. Najmniejsze jezioro Olsztyna to Jezioro Modrzewiowe. Jego powierzchnia zajmuje 0,25 ha. Jednym z płytszych jezior jest natomiast Jezioro Trackie. Mimo iż jest ono trzecim według wielkości olsztyńskim jeziorem (52,8 ha), to w najgłębszym miejscu liczy sobie 4,6 metrów.
Przez Olsztyn przepływają trzy rzeki, z których najdłuższa Łyna uchodzi do Pregoły w Obwodzie Królewieckim. Pozostałe dwa cieki to rzeka Wadąg i najmniejsza z olsztyńskich rzek – Kortówka. Łyna (dł. 264 km) bierze swój początek we wsi Łyna, leżącej nieopodal Nidzicy na Mazurach. Przepływa przez Olsztyn na długości 13 km, w tym na długim odcinku przez Las Miejski, a wcześniej – m.in. przez Stare Miasto, pięknie wpasowując się w krajobraz zabytkowego Olsztyna. Rzeka Wadąg to prawobrzeżny dopływ Łyny o długości ok. 9 km, biorący swój początek w jeziorze o tej samej nazwie, położonym na wschód od Olsztyna w sąsiedniej gminie Barczewo. Ujście Wadąga do Łyny jest jednym z najpiękniejszych miejsc Olsztyna. Kortówka natomiast to mała rzeczka wypływająca z jeziora Ukiel. Przepływa przez Jezioro Kortowskie i w południowej części miasta uchodzi do Łyny.