Hàm Ninh nằm ở đông nam tỉnh Hồ Bắc, phía nam Vũ Hán và Ngạc Châu, giữa bờ nam sông Dương Tử ở phía bắc và dãy núi Mạc Phụ ở phía nam. Nó có ranh giới với Giang Tây ở phía đông nam và Hồ Nam ở phía tây nam, Kinh Châu ở phía tây bắc, Hoàng Thạch ở phía đông bắc và Hoàng Cương ở phía đông. Nó được gọi là cổng vào phía nam (nam đại môn) của tỉnh Hồ Bắc. Địa cấp thị Hàm Ninh là một khu vực đồi núi (đặc biệt ở phần phía nam), với một ít đồng bằng (chủ yếu ở phía bắc) và hồ.
Khí hậu của Hàm Ninh mang đặc trưng ôn đới/lục địa. Nhiệt độ trung bình năm là 17 °C và lượng giáng thủy đạt 1.400 mm.