築城時期は不明だが、この地方の官牧のひとつである常盤牧一帯を領した泉氏の居城であったという。戦国期には泉氏は鴨ヶ嶽城主の高梨氏の配下となっていた。
高梨政頼は武田氏の北信濃侵攻に抗していたが、弘治三(1558)年には武田軍の攻撃により葛山城が落城、同時期に高梨氏の一族で山田城主山田左京亮に降伏勧告し、山田左京亮は降伏、高梨氏家臣の木嶋城主木嶋出雲守も武田方に転じた。身辺に武田の脅威が迫った高梨政頼は中野小館にわずかな手兵を置いて、自らは縁故のあった泉氏の居城である飯山城に籠城、「援軍がなければ飯山城を武田に明け渡すしかない」として越後の長尾景虎の援軍を強く求めた。景虎は坂戸城主の長尾政景に援軍を命じ、自身も三月二十四日に出陣すると述べている。四月十八日、景虎は信越国境を越え、山田左京亮の山田要害や須田信頼の福島城を攻略、二十一日に善光寺へ着陣し、同日旭山城を再興して武田軍の葛山城と対峙した。しかし武田軍は直接的な戦闘を避け、対陣が続いた。景虎は飯山城に籠る高梨政頼に敵を捕捉できずに残念であると書き送った。その後景虎は武田方の市川藤若の計見城を攻めたが守りが堅かったため、六月十一日に飯山城に撤退し、九月には越後に帰陣した(第三次川中島合戦)。この後、高梨氏の拠点は飯山城に移り、実質的に越後長尾氏の庇護下に入った。
永禄七(1564)年、武田信玄が飛騨に出兵すると、上杉謙信はこれを阻止するために七月二十九日、善光寺平に出陣した。信玄は八月下旬に塩崎城に入り謙信と対陣したが、大きな戦闘は起こらず謙信は十月一日、越後に帰陣した(第五次川中島合戦)。この際に上杉謙信は飯山城を大々的に改修、実城に泉弥七郎を「旧来の如く」置き、桃井伊豆守義孝、加地安芸守春綱らを援軍としておいた。十月二日には城番の岩船藤左兵衛門長忠、堀江駿河守宗親に飯山城周辺の敵の動きを細かく注進するよう命じた。
永禄十一(1568)年七月には武田信玄は本庄繁長の乱に乗じて長沼城を拠点に飯山城とその支城群を攻撃し上蔵城を陥落させた。飯山城には桃井伊豆守、加地安芸守、堀江駿河守らが在城し七月十日の攻防では双方に死傷者が出たが落城に至らなかった。
天正六(1578)年三月十三日、上杉謙信が死去するとその跡目を巡って養子の景勝と三郎景虎が争った(御館の乱)。この乱において飯山城は当初景虎方についていたらしく、景勝方の小森澤政秀に攻撃されている。この後、武田勝頼と景勝の和睦により飯山城は武田氏に割譲されたが、天正十(1582)年三月、武田氏が滅亡すると織田信長の武将、森長可の配下となった。六月二日、本能寺の変によって森氏が信濃から撤退すると、飯山城は景勝の配下となり、信濃衆の岩井信能が城代に任ぜられ、地元の外様衆が交代で城番に任ぜられた。天正十一(1581)年九月十六日、上杉景勝は岩井信能に飯山城の普請を命じた。
慶長三(1598)年、上杉景勝が会津へ移封となった後、飯山城は石川光吉、森忠政らが支配し、その後関・皆川・堀・佐久間・松平・永井・青山氏らが城主に任ぜられ、享保二(1717)年以後は本多氏が幕末まで世襲した。
慶応四(1868)年四月二十日、旧幕府派の古屋作左兵衛門ら600が飯山城下に侵攻し真宗寺を本陣とした。飯山藩は対応に苦慮するうちに四月二十四日、新政府軍の松代藩兵2000が千曲川東岸に布陣、二十五日に戦闘となり幕府軍は敗走した。この際に飯山城下に放火され、城下の半分を焼失した。