室町幕府管領・細川高国の重臣であった細川尹賢の子。通称は二郎。右京大夫。
高国の実子・稙国が大永5年(1525)に没したのち、高国の養子となる。
高国は細川晴元と細川京兆家(管領家)の家督を争って永享4年(1531)6月の天王寺の合戦で敗死したが、この晴元を打倒すべく天文11年(1542)の暮れ頃に「高国の跡目」として高国残党に擁立され、天文12年(1543)7月には和泉国槙尾寺に決起。畠山稙長の支援を得て摂津・和泉国などを転戦したが、晴元に属す三好長慶に敗れ、河内国八尾城に拠った。
天文15年(1546)頃から河内国の畠山政国・遊佐長教と連合するとともに摂津国衆の池田信正・三宅国村らの支持を得て勢力を拡大、晴元方の摂津国大塚城や芥川城を攻略して晴元を丹波国に逐った。
しかし、晴元方に三好一族の三好義賢・十河一存らの援軍が加わったことで勢力は拮抗から衰退へと向かう。天文16年(1547)3月下旬には将軍・足利義輝とその父で前将軍の足利義晴を自陣営に迎えることに成功したが、7月の河内国舎利寺の合戦で晴元らに敗北を喫し、その後も河内国高屋城に拠って抵抗を続けたが、義晴らが単独で晴元方との講和に応じてしまったため、氏綱も和議を結ぶに至った。
天文17年(1548)10月、晴元に叛旗を翻した三好長慶と迎合し、長慶が翌天文18年(1549)6月の江口の合戦で勝利して晴元や足利父子を近江国に逐って晴元政権を崩壊させ、天文21年(1552)1月に義輝が長慶と和解して京都に迎えられると、氏綱は細川京兆家の家督継承を正式に認められ、管領に任じられた。しかし政局の実権は長慶に握られており、ようやく得た管領職も名目的なものにすぎなかった。
永禄2年(1559)には長慶によって山城国淀城に移され、永禄6年(1563)10月20日に同城で死去。氏綱の死によって幕府管領職は断絶した。