Oslo este situat in capul fiordului Oslo. Fiordul se afla in sudul orasului. In partea opusa se afla dealuri si munti.
Exista 40 de insule pe teritoriul orasului, cea mai mare fiind Malmoya (0,56 km²). Oslo are 343 de lacuri, cel mai mare fiind Maridalsvannet (3,91 km²). Acesta ii este si sursa cea mai importanta de apa potabila.
Iarna este lunga si relativ rece. Temperaturi sub 0 °C pot fi intalnite din septembrie pana in mai, cu ianuarie drept cea mai friguroasa luna, cu temperatura medie de -4.3 °C. Cea ma joasa temperatura inregistrata la Oslo a fost -27,1 °C in ianuarie 1942.
Nivelul mediu de precipitatii este de 763 mm pe an, iernile fiind ceva mai uscate decit verile.
Conform cronicii Snorres kongesaga, Oslo a fost fondat in jurul anului 1048 d. Hr. de catre regele Harald Hardrade. Etimologia numelui Oslo este disputata. In Evul Mediu numele a fost scris si Anslo, Aslo og Oslo, os insemnand „pajiste". Ar putea fi vorba de pajistea astazi numita Ekeberg. Oslo a devenit capitala Norvegiei in anul 1314, in timpul domniei lui Hakon al V-lea (1299-1319), primul rege care si-a stabilit permanent la Oslo, si care de asemnea a demarat constructia castelului Akershus. Dupa un incendiu de trei zile in 1624, locuitorii au fost fortati sa se mute la vest de portul Bjorvika, acolo unde se afla Akershus, castelul regal. Noul sector a fost numit Christiania (dupa regele Christian IV al Danemarcei), Oslo-ulul originar ramanand ca denumire a zonei din afara noului oras. In 1859 Christiania si Oslo s-au unit, iar din 1925 numele capitalei a redevenit Oslo.
In timpul uniunii cu Danemarca (1660-1814) Oslo va pierde statutul de capitala, si va stagna si din punct de vedere economic. Faptul ca Universitatea Oslo a fost fondata doar in 1811 a avut un efect advers in dezvoltarea tarii.
Anii 1880 au fost o perioada de puternica dezvoltare, multe cladiri importante fiind din aceasta perioada: Palatul regal, cladirea Universitatii, cladirea Parlamentului (Storting), cladirea Teatrului National etc.
Constructia cladirii Primariei a fost terminata in 1950, iar in anii 1950 multe cartiere de blocuri au fost construite in partea de est a orasului pentru a atenua lipsa mare de locuinte ce s-a simtit in primii ani de dupa razboi.