Niihama is positioned in the north-center area of Shikoku, in the eastern part of Ehime Prefecture. Niihama is enveloped by mountains to the south and east, hills to the west, and the Seto Inland Sea to the north. The Kokuryo River flows from the mountains to the Seto Inland Sea and divides the city into an areas east of the river ("kawahigashi") and west of the river ("kawanishi"). Being surrounded by mountains, Niihama feels geographically isolated from its closest neighbors, Saijō to the west and Shikokuchūō to the east. The border with Kōchi Prefecture lies in the mountains far south of the center of town.