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