เขาสามร้อยยอดเกิดจากการสะสมตัวของตะกอนคาร์บอเนตในทะเลน้ำตื้นตามไหล่ทวีป เมื่อประมาณ 295 -250 ล้านปีที่ผ่านมา หลังจากนั้นเขาสามร้อยยอดได้ยกตัวขึ้นเหนือระดับน้ำทะเล เนื่องจากการเคลื่อนที่ของเปลือกโลก เมื่อ 220 ล้านปีที่ผ่านมา จากนั้นเมื่อ 55-30 ล้านปีที่ผ่านมา เขาสามร้อยได้ถูกยกตัวขึ้นอีกครั้งเป็นแนวเทือกเขาหินปูน และหมู่เกาะหินปูนที่ตั้งเรียงรายใกล้ชายฝั่งทะเล พร้อมทั้งเกิดการคดโค้งของชั้นหิน รอยแยก รอยแตก ตามชั้นหินโดยทั่วไป ต่อมาการกัดกร่อนของน้ำฝนและน้ำใต้ดินส่งผลให้เทือกเขาหินปูนผุกร่อนจนมีลักษณะเป็นหน้าผาสูงชันหยักแหลมที่งดงาม หลายแห่งยุบตัวเป็นถ้ำหรือปล่องหุบเหวลึกดังเช่นปัจจุบัน
เขาสามร้อยยอด เป็นเทือกเขาหินปูนเป็นทิวยาวในแนวเหนือ-ใต้ ตามแนวชายฝั่งทะเลประมาณ 20 กิโลเมตร ในภาพจากดาวเทียมไทยโชตจะเห็นภูมิประเทศที่เป็นภูเขาล้อมรอบด้วยที่ราบที่เกิดจากการทับถมของตะกอนจากน้ำทะเลในอดีต ในภาพจากดาวเทียมไทยโชต นอกจากแสดงธรณีสัณฐานคาสต์หรือภูเขาหินปูนที่ชัดเจนแล้ว ยังสามารถใช้ศึกษาธรณีสัณฐานและวิวัฒนาการบริเวณชายฝั่งทะเลได้เป็นอย่างดีอีกด้วย เนื่องจากเราสามารถเห็นปรากฏการณ์ธรณีสัณฐานชายฝั่งหลากหลายลักษณะได้อย่างชัดเจน ได้แก่ บริเวณที่ราบลุ่มน้ำขังด้านตะวันตกของภูเขา เรียกว่า ทุ่งสามร้อยยอด ซึ่งแต่เดิมก่อนการทับถมของตะกอนริมฝั่งทะเล บริเวณนี้มีสภาพเป็นอ่าวลึกเข้าไประหว่างแผ่นดินเป็นลักษณะลากูน มีแหลมซึ่งเป็นบริเวณเขาสามร้อยยอดกั้นระหว่างแผ่นดินและทะเล มีแม่น้ำปราณบุรีไหลลงทางด้านเหนือของอ่าว ภายหลังเกิดสันทรายในบริเวณด้านใต้และด้านเหนือ ดังเห็นลักษณะเป็นแนวสลับด้วยร่องลากูนเล็กๆ แคบยาวหลายแนวชัดเจน บริเวณด้านใต้สันทรายจะปิดกั้นทางออกของอ่าวทำให้กลายเป็นลากูนขนาดใหญ่ในช่วงเวลาต้นของการเกิดสันทราย มีร่องรอยแสดงว่าแม่น้ำกุยบุรีได้ไหลออกมาทางด้านเหนือบริเวณใกล้ปากทางออกของลากูน และภายหลังได้เปลี่ยนเส้นทางออกสู่ทะเลมาเป็นทางน้ำในปัจจุบัน