公元296年十二月,氐人杨茂搜受氐族部众以及周边部落推崇,自号辅国将军、右贤王、仇池公,以位于今甘肃省陇南市西和县南境的仇池山为中心,占据武都、阴平两郡,创建仇池国,史称前仇池。
氐族杨氏原为西夷的一支,自号白马。秦汉以来,世居岐陇以南,汉川以西,自立豪帅。氐族能织布,善种田,精于饲养马、牛、羊。东汉末年时,氐族杨氏居于略阳郡清水县(今甘肃清水县),杨腾任部落大帅。公元211年,杨腾子杨驹率部南迁至今陇南西和县的仇池山。仇池山四面险隘,羊肠蟠道三十六回,上下山交通极为不便。但山上平缓广阔,有良田百顷,土壤肥沃,仇池水盈泉丰,可以引水灌田,而且能够煮土成盐。仇池山北边的骆谷城为当年钟会取汉中的前哨阵地,东边一条长达五十余里的石峡近道,为陇右通往四川的必经要道,而且这里地处长江流域北南秦岭间徽成盆地边缘,气候湿润,物产丰富,米、麦、谷、豆俱全,铜、铁、铅、锌丰产,牛羊肥壮,马匹优良,是一个容易独立生存、对外界依赖度不高的封闭割据宝地。氐族在此聚居,在汉末魏初社会动荡的夹缝中,成为一支割据力量。杨腾之后,继任者杨千万,曾被曹魏封为百顷氐王。至杨千万孙杨飞龙时,氐族杨氏势力逐渐强盛起来。杨飞龙受晋武帝封号,以平西将军名义率部落还居略阳(今陕西汉中)。杨飞龙无子,领养外甥令狐茂搜为子,改外甥名为杨茂搜。杨茂搜继承并致力于杨氏事业,部族力量进一步强大。
仇池国建立后,杨茂搜广开贤路,趁关中混乱之机收纳四方豪杰,一时关中士人流民络绎奔投。同时大量招抚氐、羌民众扩充实力,《华阳国志》称“氐、羌为杨茂搜所占有”。这些措施使氐杨势力迅速发展壮大,很快引起西晋政权的重视,晋愍帝封杨茂搜为骠骑将军、左贤王。杨茂搜在位21年,于公元317年去世。
杨茂搜去世后,其子杨难敌继承左贤王之位,屯驻于下辨(今甘肃省成县)。而其弟杨坚头则称右贤王,屯驻于河池(今甘肃省徽县)。下辨为武都郡治,在今甘肃武都地区之成县;河池在今甘肃天水地区徽县。二地均在仇池东边,以徽县最远,距仇池一百五十余里。此时氐杨政权已经占有以下辨为中心的邻近地方,疆域扩大到以西汉水为中心、西南至白龙江、东至嘉陵江上游,纵横数百里的广大地区。
当时,尽管西晋已经灭亡,但从陕西西部至甘肃东部一带,仍分布着西晋的残余势力,以及从西晋独立出来的陈安等割据势力。并且,在以姑臧(今甘肃省武威市)为中心的甘肃西部,存在着前凉政权,关中有前赵,四川有成汉,这些政权均比仇池势力强大。前仇池正是在上述势力的相互冲突之中,以灵活多变的外交手段,在夹缝中维护和扩大自己的利益。前仇池一度曾与陈安结盟,公元322年又臣服前赵,公元323年又转而臣服成汉。之后,杨氏子弟陷入长期内部夺权斗争,使国力渐趋衰弱。在脱离成汉之际,前仇池遭到前赵的攻击,此后又遭到成汉的讨伐。
公元334年杨难敌去世后,其子杨毅与杨坚头子杨盘一同继承了集团。杨毅自号使持节、龙骧将军、左贤王、下辨公;杨盘为使持节、冠军将军、右贤王、河池公。为了延续其政权,仇池向东晋纳贡称臣,晋以杨毅为征南将军。公元337年,杨毅堂弟杨初袭杀杨毅,自立为仇池公,臣于后赵。之后,在看到后赵的衰落和东晋对成汉的攻势后,杨初又转而向东晋称藩,并在公元347年十月被东晋封为仇池公。公元354年,东晋穆帝改封杨初为天水公。次年,杨毅弟杨宋奴杀杨初,杨初子杨国又杀杨宋奴,自立为仇池公。晋穆帝封杨国为秦州刺史,封杨国之子杨安为武都太守。公元356年,坐席未暖的杨国被叔父杨俊杀死,杨俊自立,杨国子杨安被迫投奔前秦。
公元360年杨俊去世,其子杨世自立为仇池公,晋废帝封杨世为秦州刺史、杨世弟杨统为武都太守。杨世去世后,子杨纂继位,并遣使于东晋,东晋简文帝封杨纂为秦州刺史。
这时,北方割据政权中,前秦基本统一黄河中下游地区,势力最为强大。而本来就弱小的仇池国,经过数十年王室子孙的权利之争,国力进一步削弱。公元371年四月,前秦苻坚遣将率重兵攻伐仇池国,杨纂落败。前秦将杨纂与其领民一起迁徙至关中。至此,前仇池亡国。前仇池传8主,历76年,盛时统治范围有今陕西省南部的汉中地区、甘肃省东南部的武都地区和四川省西部的平武、广元地区之全部或大部。
白马氐人,本姓令狐,氐族首领杨飞龙外甥兼养子,更名杨茂搜。公元296年承养父之职,自封辅国将军、右贤王,建立仇池国,定都清水。杨茂搜广收周边氐、羌民众及关中地区躲避战乱的流民,不断壮大势力。公元313年五月,梁州刺史张光讨王如党、李运、王建等,因力量不济,求助于杨茂搜;同时,王建婿杨虎亦向杨茂搜求救,双方都欲借氐杨力量消灭对方。杨茂搜精确谋划,明言助光,实发兵帮助杨虎,大破张光,生擒其部将孟苌,从中大获实利。不久,西晋愍帝封杨茂搜为骠骑将军、右贤王。公元317年杨茂搜去世,其在位22年,生年不详。
杨难敌为杨茂搜长子。公元317年杨茂搜去世,杨难敌与弟杨坚头分领部曲。杨难敌号左贤王,屯下辨;杨坚头号右贤王,屯河池。前仇池的崛起,让前赵视为隐患。公元322年,前赵刘曜领军攻杨难敌,杨难敌迎战不胜,退保仇池。恰在此时,刘曜军中大疫欲退兵班师,又担心杨难敌尾随追杀,于是遣尚书郎王犷为光国中郎将游说杨难敌,杨难敌审时度势,决定称藩前赵,刘曜以杨难敌为假黄钺,都督益、宁、南秦、凉、梁、巴六州及陇上、西域诸军事,上大将军,益、宁、南秦三州牧,武都王。公元321年,天水陈安反叛刘曜,而杨难敌自父辈就与陈安结为秦晋。当陈安兵败身亡后,杨难敌知道祸将及身,便和弟杨坚头奔于汉中。刘曜派大将刘厚追击,获其辎重人口,占领仇池,命大鸿胪田崧为镇南大将军、益州刺史镇守仇池。时隔不久,杨氏兄弟在李雄支持下,乘刘曜出击石勒之机偷袭仇池,大获全胜,重据仇池。此时,刘曜无力顾及氐杨,而成汉则欲取而代之。杨难敌诱敌深入,大败成汉军队,不仅确保了原有土地,还开辟了下辨以东及以南大片领土。公元334年杨难敌病逝,其在位18年,生年不详。
杨毅为杨难敌长子,公元334年其父去世后继位。杨毅自称使持节、龙骧将军、左贤王、下辨公;以叔父杨坚头子杨盘为冠军将军、右贤王、河池公。杨毅向后赵称臣,并遣使称藩于晋,受封征南将军。杨毅继位,基本以守成为主。公元337年,杨毅堂弟杨初发动叛乱杀死杨毅。杨毅在位4年,生年不详。
杨初为杨坚头长子。公元337年杀堂兄杨毅篡权,自立为仇池公,向后赵称臣。公元347年,杨初遣使向东晋称藩,晋以杨初为使持节、征南将军、雍州刺史、仇池公。公元353年六月,杨初打败前秦进攻。公元354年,东晋改封杨初为天水公。公元355年正月,杨毅弟杨宋奴指使亲信梁式王杀害杨初。杨初在位19年,生年不详。
杨国为杨初子。公元355年杨宋奴指使梁式王杀害杨初,杨国率左右杀梁式王及杨宋奴,自立为仇池公。东晋重臣桓温任杨国为秦州刺史,任杨国子杨安为武都太守。公元356年,杨国叔父杨俊杀杨国。杨国在位2年,生年不详。
杨俊为杨茂搜孙,杨坚头次子,杨国叔父。公元356年,杨俊杀杨国继位,东晋封杨俊为仇池公。公元360年,杨国子杨安派内应毒杀杨俊。杨俊在位5年,生年不详。
杨世为杨俊长子。公元360年,杨俊被杨国子杨安派人毒死,杨俊子杨世逐杨安继位。公元368年,东晋以杨世为秦州刺史。同时杨世又向前秦称臣,前秦任杨世为南秦州刺史。公元370年,杨世去世。杨世在位11年,生年不详。
杨纂为杨世长子。公元370年杨世去世,杨纂继位。杨纂称臣东晋,前秦苻坚闻讯大怒。公元371年,苻坚遣将率兵七万攻前仇池,杨纂将可用之兵悉数调至仇池山一带,东晋梁州刺史亦派千余骑兵赶来增援。前秦兵至,杨纂亲率大军设伏于大峡谷,此时晋军亦至,三方展开大战。前仇池军战死者十有其四,晋军亦伤亡殆尽。杨纂退守仇池山,死守不再出战。两军相持日久,山上军心动摇,杨世弟、杨纂叔父杨统趁夜打开城门迎入秦军,杨纂被迫降秦,苻坚将其迁居长安,不久死于之前投奔前秦的杨国子杨安之手。杨纂在位2年,生年不详。