จังหวัดนครพนม  มีลักษณะภูมิประเทศทั่วไปเป็นที่ราบสูง  ความสูงของพื้นที่โดยเฉลี่ยสูงกว่าระดับน้ำทะเล ประมาณ  ๑๔๐  เมตร สภาพภูมิประเทศแบ่งออกได้เป็น  ๒  เขต  ดังนี้

เขตตอนเหนือ  สภาพพื้นที่ส่วนใหญ่เป็นเนินสูงและที่ดอน มีป่าไม้สลับกับพื้นที่ราบที่ใช้ทำนาทางเหนือสุดของจังหวัดในเขตอำเภอบ้านแพง   มีเทือกเขาภูลังกาทอดผ่าน   นอกจากนี้ยังมีแม่น้ำสายสำคัญไหลผ่าน คือ แม่น้ำสงครามและแม่น้ำอูน สำหรับอำเภอในเขตนี้ คือ อำเภอบ้านแพง อำเภอศรีสงคราม
อำเภอท่าอุเทน อำเภอนาหว้า อำเภอโพนสวรรค์ และอำเภอนาทม

เขตตอนใต้ พื้นที่บริเวณใกล้แม่น้ำโขงทางทิศตะวันออกเป็นที่ราบลุ่ม ส่วนทางทิศตะวันตก ซึ่งอยู่ห่างจากแม่น้ำโขงออกไปมีพื้นที่ดอนมีสภาพเป็นป่าเต็งรัง พื้นดินส่วนมากมีลักษณะเป็น หินลูกรัง บางแห่งมีลักษณะเป็นที่เนินและที่ราบสลับกันมีแม่น้ำก่ำไหลผ่านพื้นที่ทางใต้สุดของจังหวัด ในเขตอำเภอนาแก
มีเทือกเขาภูพานทอดเป็นแนวกั้นเขตระหว่างจังหวัดนครพนมกับจังหวัดมุกดาหาร สำหรับอำเภอที่อยู่ในเขตนี้ ได้แก่ อำเภอเมืองนครพนม อำเภอเรณูนคร อำเภอธาตุพนม อำเภอปลาปาก อำเภอนาแก และ อำเภอวังยาง