Город расположен на берегу Онежского озера в 152 км севернее от Петрозаводска в центральной части Республики Карелия на северо-западной оконечности Большой губы Повенецкого залива Онежского озера в устьях рек Кумсы и Вички. Он окружён живописными скалами и песчано-гравийными холмами, покрытыми хвойными лесами. Медвежьегорск располагается на стыке границ орографических зон: к западу от него находится Онежско-Ладожский водораздел, к северу и северо-востоку — Онежско-Балтийский водораздел, к югу — Заонежский сельговый район, и по восточному побережью Повенецкого и Заонежского заливов — Восточно-Онежская равнина.