夏、商时期,北川县境属梁州之域。 周代属冉駹部落境域,冉駹隶蜀国。周赧王十五年(前300),以蜀国境域设置蜀郡,北川属蜀郡冉駹部落境域。西汉武帝元鼎六年(前111),以冉駹部落之地置汶山郡,辖广柔等五县。据清乾隆版《石泉县志》载:“《通志》言,邑为蜀郡广柔县地。”西汉宣帝地节三年(前67),撤销汶山郡,辖县改隶蜀郡。东汉安帝延光三年(124),复设汶山郡,仍辖广柔等县。蜀汉、西普、成汉、东晋因之。刘宋迁汶山郡治于都安县(今灌县城),广柔县废。南齐在汉汶山县地设置北部都尉,北川属其境域。梁武帝普通三年(522),置绳州,辖汶山郡和新由北部都尉改置的北部郡,北部郡辖复置的广阳一县,北川属广阳县境域。西魏改汶山郡隶益州,绳州仅辖北部郡一郡。
北周武帝保定四年(564),改绳州名汶州,仍辖汶山郡和北部郡。天和元年(566),于北部郡新置北川县。此为北川建县之始。隋文帝开皇三年(583)撤销汶山郡和北部郡,以汶州、扶州合并设置蜀州,以州辖县,北川县隶蜀州。开皇五年(585),改蜀州名会州,北川县隶会州。隋炀帝大业三年(607),罢州设郡,会州、翼州、覃州合并置汶山郡,北川县汶山郡。唐高祖武德元年(618)罢郡设州,汶山郡复称会州,北川县隶会州。武德四年(621)改会州名南会州,北川县隶南会州。唐太宗贞观八年(634),改南会州名茂州,析北川县地置石泉县,北川、石泉两县均隶茂州。唐太宗永徽二年(651),并北川县入石泉县,石泉县仍隶茂州。唐玄宗天宝元年(742),罢州设郡,茂州改称通化郡,石泉县隶通化郡。唐肃宗乾元元年(758)罢郡设州,通化郡复称茂州,石泉县隶茂州。五代因之。北宋神宗熙宁九年(1076),石泉县改隶绵州。
北宋徽宗政和七年(1117),于石泉县置石泉军。石泉军辖石泉、龙安、神泉三县,隶成都府路。徽宗宣和三年(1121)石泉军降为军使,仍隶成都府路;军使不辖县,原辖三县还隶绵州。宣和七年(1125)又升石泉军使为石泉军,仍辖石泉、龙安、神泉三县,隶成都府路。南宋理宗宝祐三年(1255),石泉军迁治龙安县。元世祖中统五年(1264)(即至元元年)升石泉军为安州,石泉县隶安州,安州隶成都府路(后改成都路)。明太祖洪武七年(1374),降安州为安县,石泉县与安县均隶成都府。明世宗嘉靖四十五年(1566),石泉县改隶龙安府。清代因之 。
民国2年(1913)罢府、厅、州,以道辖县,石泉县隶川西道(次年改称西川道)。民国3年,因与陕西省石泉县同名,且彼县设置在先,乃复名北川县,仍隶西川道。从民国8年起,四川军阀割据的“防区制”正式形成,县级政区均由驻防军阀管辖,省、道形同虚设。北川县先后为吕超、邓锡侯、刘斌、杨森、田颂尧等大、小军阀的防区。民国19年,四川省正式撤道,各县均隶省。民国24年4月,中国工农红军第四方面军进驻北川后,在县境建立平南县和北川县苏维埃政府(均隶属于川陕省苏维埃政府)。7月下旬,苏维埃政权因红军撤离解体。同年,川政统一,省下设置行政督察区,北川县隶第十四行政督察区。
1949年10月1日,中华人民共和国成立。1950年1月7日,北川县解放,隶剑阁专区。1953年1月,剑阁专区改称广元专区,北川县隶广元专区。同年3月,广元专区撤销,北川县隶绵阳专区。1968年7月,绵阳专区改称绵阳地区,北川县隶绵阳地区。1985年5月,绵阳地区撤销,分置绵阳、广元、遂宁三市,北川县隶绵阳市。1987年11月,四川省人民政府批准:“自1988年1月起北川按少数民族县待遇”。2003年7月6日,国务院批准设立北川羌族自治县,同年10月25日举行自治县成立庆典。2008年5月12日,北川羌族自治县治所曲山镇因“5·12”大地震夷为平地。5月22日,北川羌族自治县县委县府在安县安昌镇挂牌设立临时办事处。