"永嘉之乱"后,祖逖曾率领亲族乡党数百家南下投奔司马睿,被任命司马睿为徐州刺史,不久又被征为军路祭酒。
建兴元年(313年),司马邺即位,以司马睿为侍中、左丞相、大都督陕东诸军事,命其率兵收复洛阳。
当时,司马睿早有以江南为屏障称帝之心,就以种种理由推迟不去。于是,祖逖便进言说∶"晋室之乱,不是皇帝无能,也不是因百姓闹事,而是皇族争权,自相残杀,给了夷狄可乘之机。如今北方的老百姓备受蹂躏,都有奋起反击的决心。大王如果能奉诏派人出征,就应该任命像我这样的人为统帅,我相信江北豪杰定会望风响应,沦陷区的老百姓也会欢欣鼓舞。如此一来,或许能收复失地,一雪国耻。"
司马睿虽然十分不愿意,但也不能公开反对,不然便会失去民心,那么皇帝梦也破碎了。但他又不想北伐,就任命祖逖为奋威将军兼豫州刺史,只拨给了祖逖1000人的口粮、3000匹布,连武器装备都没给,让祖逖自己渡江去招募人马。
祖逖带着宗族、家丁数百人渡江北上。船行到江中,祖逖敲着船桨,对天发誓∶"我祖逖如果不能肃清中原,就如这大江之水,有去无回!"然后在淮阴招兵买马,铸造兵器,招募到2000多人。
洛阳沦陷后,中原百姓除了南迁,就只有联合起来结堡自守,他们平时耕种,战时全民皆兵,不过只能对付小股流寇,如果是大规模的武装,就只能归顺对方。这些坞堡大的数千人,小的数百人,由于祖逖代表正统的汉族政权,打出的旗号是驱逐胡虏、收复失地,自然得到广大民众的热烈拥护,很快就收复了黄河以南的大片国土。
谯郡(今徐州西南涡河旁边)是通往中原的门户,当时的豫州刺史叫张平,是原西晋北中郎将刘演(刘琨侄儿)战时任命的,张平又让自己的哥们樊雅为谯郡太守,这两人还坚守在谯郡。因此,祖逖率部进抵芦洲(今安徽亳州市东涡水北岸)时,派参军殷乂前往谯郡,说服张、樊二人服从自己指挥,已经是在苦苦支撑的张平,打算让出位置归顺祖逖。可祖逖用人不当,殷乂是个刚愎自用的家伙,一见张平就端起架子,横挑鼻子竖挑眼的,最后惹得张平一刀把殷乂砍了。
祖逖兵微将寡,此前采取恩威并施,对付那些弱小的反动武装还行,要进攻谯郡这样的城池就力不从心了,只好向自封陈留太守的陈川、南中郎将王含求援。王含派参军桓宣率领 500 名甲士北上增援,陈川也派猛将李头率军南下相助。桓宣原先是司马睿身边的舍人,因为与张平、樊雅是老乡、曾奉命招抚张、樊二人归顺建康朝廷,后被王含录用。祖逖就利用这层关系,派桓宣到谯郡做策反樊雅的工作。
桓宣对樊雅说∶"祖豫州正在全力荡平贼寇,很需要你的支援,只是所派非人,殷乂轻薄无礼,并非祖豫州的本意。你如今困守孤城,北面有强贼窥伺,南面有朝廷猛将进击,根本没有出路,如果现在归顺祖豫州,既可建立忠勋,又能保全富贵。"最终成功说服樊雅开城出降。
祖逖占据谯城后,终于在豫州站住了脚跟,打通了北伐的通道。石勒方面迅速作出反应,派堂侄石虎率兵南下,企图趁祖逖立足未稳,将其赶回淮河下游。王含听说石虎围困谯城,又派桓宣率军救援。石虎久攻不下,见王含的援军将至,只得撤军离去,桓宣也被祖逖留下,协助自己征讨那些不肯归附的坞堡武装。谯城也就成了祖逖北伐的大本营,石勒治下的许多地区都纷纷归附。
可祖逖的胜利非但没能让司马睿感到欣喜,反而让他感到担心,担心祖逖功高震主,威胁到他的帝位,但祖逖的北伐深得民心,不得不有所表示、于是除了给祖逖一个镇西将军的头衔外,连一点实质性的支援也没有。没有支援,祖逖采取了一系列措施,劝督农桑,带头发展生产,逐渐丰衣足食起来。
石勒见祖逖势力强盛,不敢南侵,命人在成皋县为祖逖的母亲修葺陵墓,又写信请求互通贸易。祖逖虽然没给回信,但任凭双方互通往来,生意做得红红火火,闷声大发财,兵马日益强壮。后来,祖逖有一个部将逃到石勒部,石勒命人把他杀了,将人头送还,向祖逖示好,双方进入一段难得而短暂的和平时期。
太兴四年(321年),祖逖兵精粮足后,准备北渡黄河攻击石勒,收复河北。司马睿怕他再立新功,遂任命亲信戴渊为征西将军,都督司、兖、豫、并、雍、冀六州诸军事、司州刺史,名义上是协助祖逖讨伐胡虏,实际上是牵制祖逖。祖逖见自己辛辛苦苦了收复河南,又殚精竭虑经营,却仍不得朝廷的信任,那些收复的和未收复的州都归别人统辖,内心异常苦闷。不久,又传来在北方的好友刘琨被害,南方的王敦专横跋扈,朝廷内乱一触即发等坏消息。刘琨一死,除了他祖逖,还有谁真正想着收复失地?朝廷一乱,北伐更加无望,祖逖在忧愤中一病不起,继而身故,终年56岁。