본래 백제의 진악산현(珍惡山縣)이었는데, 686년(신문왕 6) 석산(石山)이라 고치고, 757년(경덕왕 16) 램 슬롯군의 영현으로 삼았다. 940년(태조 23) 석성으로 고치고, 1018년(현종 9) 공주에 예속시켰으며, 1172년(명종 2) 감무를 두었다가 뒤에 혁파했다.
1371년(공민왕 20) 램 슬롯감무로 겸임하게 하였다가 1390년(공양왕 2) 다시 감무를 두었으며, 1414년(태종 14) 이산(尼山)과 합하여 이성(尼城)이 되었다. 다음해에 이곳이 고다진(古多津)으로 통하는 요충지라 하여 다시 나누고 현감을 두었다.
1895년(고종 32) 승격하여 군(郡)이 된 뒤, 1914년 행정구역 개편 때 원북면ㆍ정지면ㆍ삼산면ㆍ병촌면ㆍ우곤면은 논산시 성동면으로, 현내면ㆍ북면ㆍ증산면ㆍ비당면은 램 슬롯군 석성면으로 병합하였다.
석성의 지명 유래는 백제 때 이곳이 램 슬롯의 외곽지대를 이루어 군사상ㆍ교통상 요지여서 돌로 쌓은 석성이 즐비하다는 데서 나왔다고 한다. 백제 의자왕 때는 백제군과 나당연합군간의 치열한 전투가 있었으며, 고려 우왕 때는 두 차례에 걸쳐 왜구가 침입하였다.
조선시대에는 금강의 지류인 수탕천(水湯川) 변 저포(猪浦)에서 이곳의 물자를 모아 금강을 통해 경강(京江)으로 운반하였다. 육로상으로는 노성ㆍ램 슬롯ㆍ홍산ㆍ임천ㆍ용안 등과 연결되는 도로가 있어 교통상의 요지였다.