首先是在巴蜀地区发生的流民起义,领导人李特带领当地的流民现在成都发起起义,在起义初期,西晋军队就被打败了,起义部队便占领了更多的领地。李特在起义之前就和当地的民众签了一份协议,战果都要接济当时的穷人。在双方都同意后便开始了大规模的征战。之后因为李特牺牲在战场上,他的儿子又接替了他的位置继续出征,而且还创建了自己的国家,这个政权直到东晋时期才被消灭。在此次起义中西晋军队受到了重创,还曾出现了一次最大规模的起义。
两年后,又一场流民起义爆发了,这次起义主要是因为晋朝将领前去战场支援的路上与荆州民众发生冲突而发生的,在荆州的流民也都自愿加入了队伍,这个时候晋朝内部还发生了争斗,所以起义军队借着这个机会,分别占领了多个地方,西晋的将军也被杀掉了,可是起义军最后还是失败了。
之后发生在雍州的流民起义,这是因为晋朝官员不让流民随意到其他地方,还要这些流民回到他们原来的地方。这个口令把这些流民在一次激怒了,他们便集合起来发动了起义,把晋军打得很惨。之后在中原地区也爆发了农民起义,在石勒的领导下,山东以及河北等地都发起了起义。
虽然西晋末年流民起义经过多次失败,但这个举动对西晋的灭亡起了直接的推动作用。