Halsa ligger øst for Kristiansund ved Halsafjorden og Korsnes-/Areviksfjorden, og fra de sistnevnte skjærer Skålviksfjorden og Valsøyfjorden seg inn. Rundt disse fjordarmene ligger strekninger av lavt land, hvor innbyggerne i kommunen bor. Fra Skålvikfjorden går også lave eid mot nordøst og mot vest til kirkestedet Halsanaustan ved Halsafjorden. Ellers er Halsa berglendt med de høyeste toppene på grensen i sør, høyest er Hjelmen på 978 m. Berggrunnen består vesentlig av gneis. Furuskogen vokser opp til 400 m. Kommunens største øyer er: Valsøya, Bårsetøya og Volungøya.