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