唐咸亨二年(671年)置金堂縣。因金堂峽為名,一作金臺山。一說縣西有金堂山,水通巴漢,故名。
1996年,金堂縣面積1154平方千米,人口約82.3萬人。轄17鎮7鄉:趙鎮、三星鎮、清江鎮、官倉鎮、淮口鎮、白果鎮、五鳳鎮、九龍鎮、高板鎮、福興鎮、金龍鎮、趙家鎮、竹篙鎮、廣興鎮、隆盛鎮、土橋鎮、云合鎮、棲賢鄉、云繡鄉、黃家鄉、三溪鄉、平橋鄉、轉龍鄉、又新鄉。縣政府駐趙鎮。
1999年,金堂縣轄19個鎮、5個鄉:趙鎮、淮口鎮、竹篙鎮、土橋鎮、五鳳鎮、云合鎮、廣興鎮、高板鎮、福興鎮、趙家鎮、金龍鎮、白果鎮、三星鎮、官倉鎮、清江鎮、隆盛鎮、九龍鎮、三溪鎮、轉龍鎮;又新鄉、平橋鄉、黃家鄉、棲賢鄉、云繡鄉。
2000年第五次人口普查,金堂縣常住總人口772273人,其中:趙鎮103934人,三星鎮23077人,清江鎮23728人,官倉鎮22784人,淮口鎮43956人,白果鎮40797人,五鳳鎮26102人,九龍鎮23793人,高板鎮38700人,三溪鎮22579人,福興鎮43878人,金龍鎮24359人,趙家鎮33276人,竹篙鎮44897人,廣興鎮29289人,隆盛鎮22356人,轉龍鎮23178人,土橋鎮27737人,云合鎮28540人,棲賢鄉25407人,云繡鄉15737人,黃家鄉18702人,平橋鄉37305人,叉新鄉28162人。
2004年9月8日,省政府(川府民政[2004]35號)批復同意撤銷九龍鎮和云繡、黃家2鄉。將原云繡鄉所屬行政區域并入趙鎮;趙鎮政府駐幸福路。將原九龍鎮所屬行政區域并入淮口鎮;淮口鎮政府駐文化街。將原黃家鄉所屬行政區域并入三溪鎮;三溪鎮政府駐上正街。將原竹篙鎮的雙輝村和原高板鎮的包包店、茅庵塘2個村所屬行政區域劃歸隆盛鎮;隆盛鎮政府駐興隆街。
2004年,金堂縣總面積1156平方千米,人口密度731人/平方千米。轄趙鎮、淮口、五鳳、竹篙、土橋、白果、三星、官倉、清江、隆盛、云合、廣興、高板、福興、趙家、金龍、轉龍、三溪、又新19個鎮和平橋、棲賢2個鄉,共有42個社區、187個行政村。
2006年6月22日,省政府(川府民政[2006]28號)批復同意將白果鎮的石心村所屬行政區域劃歸淮口鎮管轄。
2010年第六次人口普查,金堂縣常住總人口717227人,其中:趙鎮154947人,三星鎮21458人,清江鎮22898人,官倉鎮21247人,淮口鎮70661人,白果鎮29610人,五鳳鎮20473人,高板鎮31529人,三溪鎮35653人,福興鎮31490人,金龍鎮20863人,趙家鎮28341人,竹篙鎮38549人,廣興鎮23614人,隆盛鎮23776人,轉龍鎮16822人,土橋鎮27554人,云合鎮21799人,又新鎮24786人,棲賢鄉19361人,平橋鄉31796人。
2013年,省政府(川府民政[2013]8號)批復同意撤銷趙鎮鎮,設立趙鎮街道。調整后,全縣轄1個街道、18個鎮、2個鄉。