Byen er bygget opp på fjorten øyer og flere halvøyer der innsjøen Mälaren renner ut i Østersjøen og møter den stockholmske skjærgården – et særegent maritimt landskap med mer enn 24000 øyer. Landskapet er til dels kupert. Den gamle bykjernen er Gamla stan på Stadsholmen, Riddarholmen, Helgeandsholmen og øyen Strömsborg. I Saltsjön mellom Djurgården og Gamla stan ligger Skeppsholmen og Kastellholmen som marinen siden 1600-tallet har disponert. Södermalm er et boligstrøk knyttet til Gamla stan via Slussen. I Mälaren nordvest for Södermalm ligger Långholmen som er forbundet med broer til Kungsholmen. Kungsholmen er hovedsakelig et boligstrøk og tilhørte i middelalderen kirken. Utenfor bykjernen har Stockholm store forstader som Hammarby, Essingen, Ulvsunda og Liljeholmen samt nabokommunene Solna, Sundbyberg, Lidingö og Nacka.