Город находится на берегах Петрозаводской губы, Немецкой губы, Заячьей губы Онежского озера, второго по величине озера Европы. Часть города также расположена на берегу «открытого» Онежского озера. По системе рек и каналов Петрозаводск имеет выход в Балтийское, Белое, Баренцево, Каспийское и Чёрное моря, что делает его портом пяти морей. Также в городе находятся озёра: Денное, Карьер, Ламба, Логмозеро и Четырёхвёрстное. Логмозеро и Онежское озёра соединены Соломенским проливом.