본래 퇴관부곡(退串部曲)이었는데, 고려 충혜왕 때 이곳 사람 강금강(姜金剛)이 원조(元朝)에서 공이 있었다 하여 현으로 승격할 때 내성으로 개칭하였다.
조선 초기에는 안동부의 임내(속현)가 되었고, 1906년 봉화군 내성면으로 하였다가 1914년 행정구역 개편 때 내성면(乃城面)으로 머리한자를 바꾸었다. 1956년 내성면을 봉화면으로 바꾸었고, 1979년 읍으로 승격되었다.
조선시대에 내성은 소백산맥 남쪽 산록의 소천(小川) 하곡(河谷)에 발달하였다. 동쪽의 봉화와 서쪽의 순흥 사이에 끼어 있는 형태였고, 남쪽으로 예안ㆍ영천이 있어 안동의 월경지(越境地)로 존재하였다. 당시에는 이곳에 내성창(奈城倉)이 있었고, 북쪽으로 소백산맥의 여촌령(呂村嶺)을 넘어 영춘(永春), 남쪽으로 영천에 이어지는 도로가 발달하였다.