본래 백제의 일모산군(一牟山郡)이었는데, 757년(경덕왕 16) 연산군(燕山郡)으로 고쳤다. 고려 때 청주에 소속되었다가 1172년(명종 2) 감무를 두었으며, 1259년(고종 46) 위사공신(衛社功臣) 박희실(朴希實)의 내향(內鄕)이라 하여 문의현으로 승격시키고 현령을 두었다. 충렬왕 때 가림(嘉林: 지금의 부여군 임천면)에 병합하였다가 곧 복구하였다.
임진왜란 때 청주에 속하였다가 1597년(선조 30) 현으로 복구하였다. 1895년(고종 32) 군으로 승격되었다가 1914년 행정구역 개편 때 청주에 병합되었다. 1946년 청주읍이 부로 승격됨에 따라 청원군으로 개칭, 문의면으로 되었다.
이곳의 지형은 차령산맥과 소백산맥의 중간저지를 흐르는 금강유역에 발달한 소규모의 침식분지이다. 문의라는 지명은 붓끝같이 생겼다는 문필봉에서 나온 것으로 ‘의(義)를 위하여 글을 쓴다’는 의미를 가진다.
조선시대에 남북으로는 옥천과 청주, 동서로는 연기와 회인을 연결하는 도로가 발달하였다. 덕류역(德留驛)이 있었으며, 소이산(所伊山)에는 봉수가 있었다. 고려태조와 후백제군이 격전을 벌였던 곳이기도 하다.