Phía đông bắc giáp huyện Giao Thủy, phía bắc giáp huyện Xuân Trường, phía tây bắc giáp huyện Trực Ninh, phía tây nam giáp huyện Nghĩa Hưng, phía đông và đông nam giáp biển Đông. Cực nam của huyện là cửa Lạch Giang của sông Ninh Cơ, nằm ở thị trấn Thịnh Long, ranh giới với huyện Nghĩa Hưng. Bờ biển Hải Hậu dài dọc theo thị trấn Thịnh Long và các xã Hải Hòa, Hải Triều, Hải Chính, Hải Lý, Hải Đông và giáp với huyện Giao Thủy.
Huyện có diện tích 230,22 km². Toàn bộ diện tích huyện Hải Hậu là đồng bằng với khoảng 32 km bờ biển, trên địa bàn huyện không có ngọn núi nào.