东部和西部分别与北京市密云区与延庆区相邻，北部毗邻河北省承德市所属的丰宁县，正南方与顺义区接壤，西南则同昌平区为邻。全区大部分地区（88.7%）属于燕山山区，东南角的怀柔镇、杨宋镇等地为平原地区属于华北平原的一部分。山区和平原的气温和水分都有较大差距。潮白河在区东南边界上与顺义区相隔，而北部山区汤河口镇附近有潮白河支流白河流经。怀河是区南部的主要流域地区，拦腰截断后在怀柔城区西侧形成了北京的着名水源怀柔水库，怀河的两个上源则是怀沙河以及怀九河，而来自密云水库的京密引水渠途径怀柔后又有怀柔水库增加水源而继续向