北周武帝保定四年(564)置北川县,因县西北有北川城而得名;一说汶川又称北川,因此得名。
唐太宗贞观八年(634)析北川县地置石泉县,唐高宗永徽二年(651),并北川县入石泉县。北宋徽宗政和七年(1117)于石泉县置石泉军,辖石泉、龙安、神泉三县,隶成都府路。南宋理宗宝佑三年(1255),石泉军迁治龙安县。
元世祖中统五年(1264)升石泉军为安州,石泉县隶安州。明太祖洪武七年(1374)降安州为安县,石泉县直隶成都府。
明世宗嘉靖四十五年(1566),石泉县改隶龙安府。
1913年罢府、厅、州,以道辖县,石泉县隶川西道(次年该称西川道)。
1914年,因与陕西省石泉县同名,且彼县设置在先,乃复名北川县。
1935年中国工农红军第四方面军于境内建立两个县苏维埃政府,红军在千佛山与川军对峙72天,保证了红军西进道路畅通。
1950年1月北川解放,隶剑阁专区。
1952年县政府驻地由治城迁曲山。
1953年3月隶绵阳专区,1985年5月隶绵阳市。
1987年,省人民政府批准“自1988年1月起北川按少数民族县待遇”。
1996年,北川县面积2869平方千米,人口约15.8万人,其中羌、藏、回等少数民族8万人。辖3个镇、2个乡、11个民族乡,278个村:曲山镇、擂鼓镇、通口镇、香泉乡、桂溪乡、陈家坝羌族乡、都贯羌族乡、禹里羌族乡、漩坪羌族乡、白坭羌族乡、小坝羌族藏族乡、开坪羌族藏族乡、片口羌族藏族乡、坝底羌族藏族乡、白什羌族藏族乡、青片羌族藏族乡。县政府驻曲山镇。
2003年6日,国务院(国函[2003]75号)批准撤同意销北川县,设立北川羌族自治县,同年25日举行自治县成立庆典。
2004年5月28日,四川省政府(川府民政[2004]19号)批复同意北川羌族自治县原禹里、漩坪、白坭、片口、墩上、马槽、陈家坝、贯岭、都坝9个羌族乡分别更名为禹里乡、漩坪乡、白坭乡、片口乡、墩上乡、马槽乡、陈家坝乡、贯岭乡、都坝乡,原小坝、开坪、坝底、白什、青片5个羌族藏族乡分别更名为小坝乡、开坪乡、坝底乡、白什乡、青片乡,原桃龙羌族藏族乡更名为桃龙藏族乡。
2004年末,北川羌族自治县辖曲山、擂鼓、通口3个镇和桂溪、香泉、贯岭、禹里、坝底、小坝、片口、白什、开坪、都坝、马槽、墩上、青片、漩坪、白坭、陈家坝、桃龙藏族17个乡(其中1个民族乡)。
2008年5月12日,北川羌族自治县为汶川大地震中受灾最严重的区域之一,治所曲山镇因“5·12”大地震夷为平地。5月22日,北川羌族自治县县委县府在安县安昌镇天龙宾馆挂牌设立临时办事处。11月初,国务院常务会议审查通过北川新县城选址,定于安安昌镇以东大约2公里处。
2009年2月6日,民政部(民函[2009]41号)同意将安县的安昌镇、永安镇、黄土镇的常乐、红岩、顺义、红旗、温泉、东鱼6个村划归北川羌族自治县管辖,北川羌族自治县人民政府驻地由曲山镇迁至安昌镇。此次调整后,北川羌族自治县面积增加215平方千米、人口增加7.8万余人。
2009年5月20日,省政府(川府民政[2009]8号)批复同意曲山镇政府驻地由禹龙新街迁移至任家坪村;同年11月9日,省政府(川府民政[2009]15号)批复同意将安昌镇的常乐、红岩、顺义、红旗、温泉、东鱼6个村所属行政区域析出,设立永昌镇,永昌镇政府驻红旗村(2010年2月,永昌镇正式成立)。调整后,全县辖6个镇、17个乡(其中1个民族乡):曲山镇、擂鼓镇、通口镇、永昌镇、安昌镇、永安镇、香泉乡、陈家坝乡、桂溪乡、贯岭乡、禹里乡、漩坪乡、白坭乡、小坝乡、片口乡、开坪乡、坝底乡、白什乡、青片乡、都坝乡、桃龙藏族乡、墩上乡、马槽乡。县政府驻永昌镇。
2014年,省政府(川府民政[2014]14号)批复同意撤销禹里乡、桂溪乡,设立禹里镇、桂溪镇。调整后,全县辖8个镇、15个乡(其中1个民族乡):曲山镇、擂鼓镇、通口镇、永昌镇、安昌镇、永安镇、禹里镇、桂溪镇、香泉乡、陈家坝乡、贯岭乡、漩坪乡、白坭乡、小坝乡、片口乡、开坪乡、坝底乡、白什乡、青片乡、都坝乡、桃龙藏族乡、墩上乡、马槽乡。
自建县至2016年,已历1452年。
北川羌族自治县自治史
50年代后,废除民族压迫制度,实行民族平等,未进行民族识别,大量羌、藏民因其外表特征不明显而长期被视为汉族。
80年代初,根据民族政策和羌、藏等少数民族的要求,陆续甄别、恢复其族别。县内相继建立了21个羌族乡和羌族藏族乡,占北川31个乡镇的68%。
1987年,四川省人民政府批准“自1988年1月起北川按少数民族县待遇”,享受相应的优惠政策。
2002年北川置3镇17乡,其中少数民族乡15个,占乡镇总数的75%。自1986年开始进行的争取建立羌族自治县的工作历时17年。
2003年6日,建立北川羌族自治县,使北川县成为截至2013年最年轻的民族自治地方,同年25日(农历十月初一,羌历年)举行了隆重的北川羌族自治县成立庆典。《北川羌族自治县自治条例》于2006年2月18日在北川羌族自治县第一届人民代表大会第五次会议上审议通过,2006年28日四川省第十届人民代表大会常务委员会第二十二次会议批准。自2006年25日起施行。《自治条例》的颁布施行,为北川县实行区域自治提供了法律依据,少数民族平等权利和民族自治地方的自治权利得到保障,标志着北川县进一步享受国家的民族政策。