Krkonoše jsou starým masivem tvořeným převážně hercynskými žulami (nazývané Krkonoše a vyskytující se v několika variantách), tvoří intruzivní jádro bloku Izera-Karkonosze obklopeného přeměněnými prekambrickými a paleozoickými horninami (například amfibolity a rohovce). V permu byl odkryt žulový blok Krkonoš (290-245 min let, ale jeho vzestup pokračuje rychlostí 1-1,5 mm za rok) a od té doby vnější faktory utvářely povrch země. Místo intenzivních denudativních pohybů (destruktivní, rovnající se) z období paleogénu je povrch rovnice – Równia pod Sněžkou, nad nimiž jsou nějaké tvrdé inselbergy.
Během alpské orogeneze byly Krkonoše spolu s celými Sudety znovu vyzdviženy a rozdrceny zlomy. Láva pronikla do vytvořených trhlin, vymrzání na povrch v podobě čedičových žil (například v západní stěně Malého zasněženého kotle).
Na konci běhu od 1,8 min let do 10 tisíc. před lety doba ledová (Pleistocén) Krkonoše zaledněly. Tehdy vznikl tucet místních údolních ledovců. Na obou stranách masivu Śnieżky vznikly ledovcové cirkusy, ze kterého vytékaly ledové jazyky (na polské straně v údolí Łomniczka a na české straně v údolí Úpy – tento jazyk byl nejdelší a dosáhl 5 km). Procesy eroze a akumulace ledovců a vod–během glaciálu bylo vytvořeno mnoho terénních forem (kotle, Údolí ve tvaru U, matka, aluviální a výsypkové kužely a prohlubně, později zaplnily vody jezer). V chladných klimatických podmínkách zesílilo mrazové větrání, jehož účinkem jsou mimo jiné rozsáhlé trosky (štěrkovna, zvláště velké na Sněžce), osamocené odlehlé skály a suťové věnce.
Dnes se reliéf hor stále mění, hlavně vlivem gravitačních pohybů hmoty, činnosti v oblasti povrchových a podzemních vod, povrchové oplachy a oplachy způsobené také lidskou činností.
Hlavní hřeben Krkonoš je evropským rozdělením vod oddělujících povodí Severního moře (Povodí Labe) a Baltského moře (povodí Odry). Horská jezera (klouby) postglaciálního původu je málo: Mały a Wielki Staw a Śnieżne Stawki ve Śnieżne Kotły.