岛地形多山，并且其中有不少是火山。北海道本岛附近有多座离岛，多分佈在日本海一侧地区。北海道的主要离岛包括了渡岛小岛、渡岛大岛、奥尻岛、天卖岛、烧尻岛、利尻岛、礼文岛。北海道共有13条一级水系河流。在北海道的所有河流中，长度最长、流域面积最大的是石狩川。石狩川的长度达268公里，是日本第三长河流，位列信浓川、利根川之后；流域面积为14,330平方公里，仅次于利根川，是日本流域面积第二大河流。石狩川在过去曾是一条极易氾滥的河流。在明治时期，为了解决水患问题，日本政府对石狩川进行截弯取直，使得石狩川的长度