天守は本丸の南東隅に建てられ、北に高欄櫓、西に台所櫓を配置し渡り櫓で連結した複合連結式層塔型4重4階である。中央付近に心柱が通され、それに伴い2階の床には吹き抜けが造られていた。外観は、下見板張りで、比翼千鳥破風、千鳥破風、向唐破風で屋根を飾り、窓には連子窓が多用されたが、2階には華頭窓のみが並べられていた。
この地に初めて築城したのは、鎌倉時代末期に守護として国入りした伊予宇都宮氏の宇都宮豊房で、元徳3年／元弘元年（1331年）のことであると伝わる。豊房には子がなく筑後宇都宮氏の宇都宮貞泰の子の宇都宮宗泰を養子に迎えた。伊予宇都宮氏はその後、国人として二百数十年間にわたって南伊予を中心に支配を行うが、永禄の末期に毛利氏の伊予出兵によって降伏した。天正初年に土佐の長宗我部元親と通じた家臣の大野直之によって大洲城を追われた。しかし天正13年（1585年）にはその大野直之も豊臣秀吉の意を受けた小早川隆景によって攻め滅ぼされ、その小早川隆景が35万石で伊予に入封し、大洲城は一支城となった。その後は戸田勝隆が城主として入ったが、文禄4年（1595年）に藤堂高虎が入城すると近世の城郭として整備された。江戸時代初期の慶長14年（1609年）には淡路の洲本から脇坂安治が転封され、この2人の時代に天守をはじめとする建造物が造営された。また脇坂安治の時代に従来の「大津」から現在の「大洲」に城名が変更（異説あり）された。元和3年（1617年）に伯耆米子から6万石で加藤貞泰が入り、以後は加藤氏が12代に亘り大洲藩主として治め、明治維新を迎えた。
しかし、政元の誤算は義材に逃亡されたことにあった。政元は将軍殺しの汚名を嫌い、義材を小豆島あたりに流罪にしようと考えていたのだが、義材は畠山政長の配下だった越中守護代の神保長誠による手引きで京都を脱出してしまったのである。このため、明応8年（1499年）には義材に呼応した政長の子尚順ら諸大名の攻撃を受けるが、政元はこれを破り、義材は周防の大内義興のもとに逃亡した。それまで三管領として細川氏と競り合ってきた畠山氏・斯波氏の力は弱体化され、細川政元が管領職を独占して幕府の実権を握り、比叡山延暦寺を焼き討ちするなど各地で反抗勢力を攻めたり細川氏の被官としたりして勢力拡大を図り、京兆専制を打ち立てることとなった。一方、将軍義高（後に義澄と改名）を擁立して覇権を掌握した政元にも問題は起こった。政元は明応の政変において活躍した上原元秀の能力を評価して重用したが、それが評定衆を構成する他の内衆からの反感を買って元秀は殺害されてしまう。更に山城守護職の地位を巡って阿波守護の細川義春と幕府政所執事伊勢貞陸が争った際に政元が幕府内に大きな権力を持つ貞陸に妥協して貞陸を新しい守護にしたところ、貞陸は細川氏の被官が多く加わっている山城国一揆を弾圧して解散に追い込み、更に義春は阿波に帰国して三好之長ら国人を起用して現地内衆に対抗させるなどの反抗的な態度を示すようにもなった。その後、修験道に凝っていた政元は、修験道の修行に出かけてしまい、政務を家臣任せにしているということである（細川両家記より）。幸いにして政元には安富元家や薬師寺元長といった優秀な家臣団が存在していたこと、政元自身も文亀元年（1501年）に定めた内衆の統制と合議に関する「式条」を制定していたことから、特に政務が乱れることは無かった。しかしこのような政元の奇行や後述の養子問題で家臣の一部が反発し、永正元年（1504年）には摂津守護代の薬師寺元一（薬師寺元長の子）と赤沢朝経による反乱が起こるなどして、これは鎮圧したが次第に細川氏内部に不穏な動きが起こり始める。政元は妻帯せず実子も無かった。このため、養子として関白九条政基の末子である細川澄之（義澄の母方の従兄弟）を迎えたが、やがて細川氏庶流や内衆などが細川と血のつながらない養子に将来家督が譲られることに反発したため、阿波守護細川成之の孫細川澄元を養子に迎えた（成之の子で澄元の実父である義春は既に病死）。なお、前述の三好之長も澄元に付けられて上洛し、政元に仕えることになる。さらに後には同じく分家から細川高国も養子に迎えるなど、3人も養子を迎えたことがかえって家督争いを引き起こす結果となった。なお、前述の反乱を起こした薬師寺元一は澄元の養子入りにおいて主導的な役割を果たしたとされているが、これは結果的には澄元の排除には至らず、却って阿波細川家の離反を恐れる内衆による澄元擁立の動きを強めることになる。永正3年（1506年）、政元はさらなる自らの勢力拡大を目指して河内・大和・丹後など諸国に軍を派遣した。この遠征は翌年になっても続いたため、政元の身辺には軍がいないという事態が続いた。そして永正4年（1507年）6月23日、政元は澄之を推す薬師寺長忠（薬師寺元一の弟）・香西元長らによって暗殺されてしまったのである（永正の錯乱）。