Hà Giang limita con las provincias de Cao Bằng, Tuyên Quang, Lào Cai y Yên Bái y tiene una frontera internacional común con China en el norte. Hà Giang tiene muchas altas montañas rocosas, formaciones de piedra caliza y manantiales; las montañas importantes son Cam y Mỏ Neo. Los principales ríos de la región son el río Lô (la ciudad de Hà Giang se encuentra en su margen izquierdo) y el río Miện.
La topografía de la provincia de Hà Giang es bastante compleja: "los patrones climáticos montañosos templados, pero altamente localizados, crean condiciones variables entre las diferentes regiones". Tiene impresionantes picos y afloramientos de piedra caliza y granito. Tiene tres regiones. Climáticamente tiene dos estaciones, seca y monzónica, dependiendo de la altitud de la región. Las dos zonas climáticas del norte de Indochina en la frontera influyen en el clima de la parte norte de la provincia. Las áreas más bajas de la provincia comprenden colinas bajas, el valle del río Lô y la ciudad de Hà Giang. En el distrito de Cao Bồ, la estación seca dura desde mediados de septiembre hasta finales de mayo, y la estación del monzón dura desde principios de junio hasta mediados de septiembre. Sin embargo, en el distrito de Du Già la temporada de lluvias se adelanta un mes.
La temperatura media anual en la capital provincial de Hà Giang es de 22,78 °C (73,00 °F); los promedios mensuales van desde un mínimo de 15,48 °C (59,86 °F) en enero hasta un máximo de 27,88 °C (82,18 °F) en julio. La precipitación anual en la ciudad de Hà Giang es de 2.430,1 milímetros (95,67 pulgadas); el promedio mensual varía desde un mínimo de 31,5 milímetros (1,24 pulgadas) en diciembre hasta un máximo de 515,6 milímetros (20,30 pulgadas) en julio. El nivel de humedad anual promedio es del 84 %.