細川家臣。通称は又六。山城国嵐山城主。讃岐国香西郡香西の出身。
管領・細川政元に重用され、明応6年(1497)に山城守護代となる。守護代の地位を得た元長は半済・役夫などの名目を騙って公家領や寺社領を押妨するなど専横の振舞いが多かったといい、明応8年(1499)には政元に疎まれて逼塞したが、まもなく復帰している。
永正元年(1504)9月、政元に背いてその養子・細川澄元を擁して叛乱に及んだ摂津守護代・薬師寺元一の鎮圧に功があった(淀藤岡城の戦い)。
永正3年(1506)2月に三好之長が細川澄元に付されることとなって阿波国より招かれて重用されると、元長は同じく政元の養子となっていた細川澄之を擁して対抗した。
永正4年(1507)4月、政元が若狭守護・武田元信を支援して丹後守護・一色義有を討つために出兵するに際し、従軍のための役夫を賀茂社に課したが拒まれたため、賀茂社人の家々を焼き払ったという。また、この丹後国出兵においては澄之とともに石川直経の拠る加悦(賀悦:かや)城を攻めていたが、早々に和議を結んで帰国した。
その直後の6月23日、摂津守護代・薬師寺長忠(薬師寺元一の弟)らとともに主君である政元を暗殺。政元を除いて澄之を細川京兆家(管領家)の家督に就け、自身らの権力を強化するためであったとみられる。その翌日には澄元・之長主従を襲撃して近江国に逐い、7月8日には澄之に細川京兆家の家督を継がせた。
しかし澄之・元長らの京都制覇は束の間に過ぎず、8月1日には澄元を支援する細川高国・細川政賢・細川尚春らに攻められ、京都の遊初軒で澄之・長忠らとともに敗死した(遊初軒の戦い)。流れ矢に当たって即死したと伝わる。