三元原屬沙縣轄境,其地名由來已久。遠在唐代,因當地有一安氏產下三胞胎,長曰龍元,次曰獅元,末曰豺元,英杰有名于世,而取地名為三元。宋朝為沙縣二十二都的一個小村莊。明代中葉辟墟設鎮,明清設三元里,民國后設三元鎮。
1939年,從沙縣劃出設立三元特種區。1940年,增劃毗鄰的沙縣、明溪、永安縣部分地方設置三元縣,三元鎮改稱三民鎮。1950年解放時仍稱三民鎮,屬梅列區所轄。1954年,三民鎮改稱城關鎮,仍屬梅列區。1956年,三元、明溪兩縣為三明縣。1963年,與明溪縣分開建置,改稱三明市,隸屬三明專區。1983年,地、市合并后,設立三元區。
1984年,三元區轄城關街道、白沙街道、富興堡街道、荊西街道、莘口鎮、城東鄉、巖前鄉、中村鄉,共有29個居委會、47個村委會。
1992年,全區面積811平方千米,共有37754戶,136307人,其中農業人口52509人。轄城關、白沙、富興堡、荊西4個街道和莘口、巖前、中村、城東2鎮2鄉。區政府駐城關。
2000年第五次人口普查,三元區常住總人口180231人,其中:城關街道59554人,白沙街道37876人,富興堡街道23026人,荊西街道3658人,莘口鎮16611人,巖前鎮19091人,城東鄉7340人,中村鄉13075人。
2010年第六次人口普查,三元區常住總人口198958人,其中:城關街道65909人,白沙街道35538人,富興堡街道28279人,荊西街道11713人,莘口鎮16905人,巖前鎮18188人,城東鄉10744人,中村鄉11682人。