Huyện nằm ở phía tây của tỉnh Cao Bằng, phía bắc và tây bắc giáp huyện Mèo Vạc (Hà Giang), Phía đông bắc có 8 km đường biên giới giáp Trung Quốc, phía tây nam giáp huyện Bắc Mê (Hà Giang), phía nam giáp huyện Na Hang (Tuyên Quang), phía đông giáp huyện Bảo Lạc.