Sankt-Peterburg Baltık Denizi’nin Finlandiya Körfezi’nde Neva Körfezi kıyıları ile Neva Nehri deltasında bulunan adalar üzerinde bulunan rakımı düşük orta “tayga” bölgesinde kurulmuştur. Bu şehirleşmiş adalar arasında en büyükleri Neva Körfezinde (Obvodniy kanalı ile Fontanka arasında bulunan Körfezdeki Kotin) insan yapısı adalar ile doğal Vasilyevskiy Petrogradskiy ve Dekabristov adalarıdır. Krestovsky, Yelagin ve Kamenny adaları ise park alanlarıdır. Şehrin kuzeyinde bulunan Karelya Yarımadası şehrin popular mesire alanıdır. Sankt-Peterburg Baltık Denizi’nde ortaya çıkan ve ısının hızla düşmesine engel olan yüksek basınç merkezleri dolayısıyla soğuk yazları olan ıslak kara iklimine haizdir (Koppen: Dfb). Tipik olarak yazlar kısa, ıslak ve soğukçadır ama kuzeye yakın olmasına rağmen yaz aylarında sıcaklık 30 dereceye ulaşmaktadır. Kışlar uzun ve soğuktur ama sık sık kışlarda da sıcak günler ortaya çıkmaktadır. Kanallar kış sırasında donar ve kışın toprağın donması olağandır. Ortalama olarak aralık ve mart arasında 123 gün her taraf karla kaplıdır ve şubatları ortalama kar kalınğı 24 cm olmaktadır. Buna karşılık yazları ortalama 135 gün hiç don görülmez. Ortalama yağış şehrin farklı semtlerinde değişiklik gösterir ve yaklaşık olarak yılda 600–750 mm civarındadır. Şehrin kuzey semtlerinden ve yazın sonlarına doğru yağışlar en yüksektirler. Fakat şehrin rakımı düşük; deniz kenarında olan şehrin toprak suyu seviyesi zemine çok yakın olduğu ve iklim yazlari nispeten soğuk olduğu için havanın nisbi rutubeti yüksektir ve şehirde hava ortalama 145 günden fazla bulutla kaplıdır ve yağış almaktadır. Baltık Denizi, Ladoga Golü arasından İjora yaylasına bağlanır. Sankt-Peterburg’in esas şehirleşmiş alanı 605,8 km2’dir ama federe şehir olarak yerel idarenin alanı, şehrin esas arazisini içine aldığı gibi (Kolpino, Krasnoye Selo, Kronstadt, Lomonosov, Pavlovsk, Petergof, Puşkin, Sestroretsk ve Zelenogorsk adlı) küçük şehir ve kasabaları; 21 belediyeli yerleşkeyi ve kırsal alanları da ihtiva edip 1439 km2'dir. Şehrin rakımı hemen deniz seviyesinde 0’dan güneyde Duderhof Tepeleri’ndeki “Orekhovaya Tepesi” zirvesinde 176 m’ye kadar değişir. 18. yüzyılda kuruluşundan beri şehir yapay olarak kadar yükseltilmiş ve bazı küçük adalar birleştirilmiştir. Buna rağmen şehrin Liteyny Prospekt batısında bulunan arazilerinin rakımı 4 m’yi geçmemektedir. Bu nedenle Baltık Denizi’nin sığ olan Neva Körfezi’nde deniz, olağanüstü rüzgarlarla yükselme gösterdiği zaman şehirde sel afeti ortaya çıkmaktadır. Örneğin, 1975’de körfezde deniz 2.81 m yükselme göstermiş ve şehrin alçak arazilerine seller basmıştır. 1978’den itibaren selleri önlemek için körfeze 26.5 km uzunluğunda bir baraj sistemi yapılmaya başlanmış ve bu “Sankt-Peterburg Barajı” 2011’de tamamlanıp açılmıştır.