杜宣按計行事,隻帶了兩個隨從前往勸說。他對樊雅說:“此前殷乂對張平輕慢,並非是祖逖的意思,責任在殷乂。現在如果你歸順朝廷,既可讓你做官,還可保你榮華富貴。如果固執頑抗,朝廷則更派猛將大兵壓境,你性命也難以保全。希望你能考慮清楚。”樊雅終於被杜宣說服,設酒招待杜宣並結為朋友,然後讓他的兒子作為人質隨杜宣去見祖逖。過不幾天,樊雅親自登門拜謁祖逖並謝罪。祖逖則放樊雅回去安撫好自己的部下。樊雅的部將因以前辱罵過祖逖而不敢投降,擔心遭到報複。樊雅投降的決心發生了動搖,於是又堅守城門,繼續抵抗官軍。這時祖逖隻得率軍前往攻打譙郡,同時再派杜宣前去勸降,樊雅被逼無奈,隻得斬殺了不願投降的將領,率部出門投降。祖逖以最小的傷亡代價,平定了豫州。
豫州既平,祖逖便乘勢催兵向北推進。陳留郡的蓬陂塢主陳川是當地較大的塢堡勢力。他自稱寧朔將軍、陳留太守,駐據浚儀(今河南開封),擁兵自立。
祖逖決定攻打陳川,並把陳留當成主要攻擊的目標,采取征服陳川,威懾其它塢堡,以平定憲州的方略。祖逖首先發兵一支與川軍戰於穀水(今河南竹竿河)一帶,奪回川軍所掠獲的人員馬匹,迫使對方退回陳留;然後率領主力北上,直逼陳川的老巢蓬關(即蓬陂)。抵擋不住的陳川隻好退守浚儀並於不久投降了石勒。當祖逖率隊逼近浚儀時,石勒已派石虎率兵5萬來救,兩軍相戰於浚儀。由於眾寡懸殊,祖逖避開與石虎正麵交戰,在浚儀一帶擺下了許多奇陣。石虎大敗而逃,隻剩下桃豹率眾固守浚儀。
浚儀是陳川經營數年的老據點,向為兵家必爭之地,祖逖於是集中兵力準備拔除浚儀。桃豹雖兵力不及石虎,但憑城固守,拒不出戰,加有石勒的支持,祖逖久攻不下,兩軍出現相持局麵。
晉元帝大興三年(320),祖逖派部將韓潛攻打浚儀,但以失敗告終。桃豹駐守城西台,韓潛駐東台,兩軍各據一台,都無法吞並對方。同一浚儀城,豹軍從南門出入,逖軍從東門出入。這樣一直對峙了40餘日,雙方均乏糧難於支持。祖逖為了就此挫敵銳氣,利用雙方糧絕人饑的機會,施用了一個絕妙的計策:他命令士兵將土裝入布袋,如同米袋一般,讓1000多人送上東台,故意製造運糧的聲勢,向據守西台的敵軍士卒顯示。他還命令一些人出城擔米,在經南門附近時,假裝疲勞休息於道。桃豹派兵往擊,擔米者故意棄擔而走,讓他們掠去。桃豹的士兵掠得白米,又見東台祖逖軍中搬來搬去,都認為祖逖米糧充足,而自己饑饉已久,不堪支持,於是更加畏懼怯戰,營中士氣隨之大衰。
石勒聽說桃豹在浚儀缺糧,便派部將劉夜堂用1000頭驢飽馱糧食運往浚儀。密切注意敵軍增援的祖逖,很快得到了這一消息。於是,他派出重兵攔擊石勒糧隊,一直追擊劉夜堂至汴水,將所用軍糧全部截獲。祖逖營中得到軍糧補給,士氣更盛。而桃豹久不得濟,更加恐惶不安,後來看到糧盡援絕,隻得放棄浚儀,北撤東燕城等待援助。
祖逖的勝利極大地影響了黃河以南的戰事。為了擴大戰果,趁機推進,祖逖將部隊分為三支:一由韓潛率領,北進封丘(今河南封丘),追擊桃豹;一由馮鐵率領據守浚儀東西二台,控製這一水陸交通要地;一由祖逖率領鎮守雍丘。石勒軍隊每次來犯,三支部隊便前後呼應,相互協同,阻截或夾擊之。石勒得不到南下機會,在這一帶的勢力也就隨之逐漸瓦解。就這樣,祖逖順利地收複了原陳川控製下的陳留郡。
元帝大興三年(320)七月,祖逖以軍功被司馬睿任命為鎮西將軍。
在祖逖的威懾下,石勒不敢出兵到河南,他派人在成皋縣修祖逖母親的墳墓,並寫信給祖逖,請求互通使節、互市貿易。祖逖雖然沒有回信表示同意,但聽任雙方互市,使自己獲得十倍的收獲,於是官方和私人都富足起來,兵馬也日益強壯。
正當祖逖準備渡河北進、完成統一大業之時,晉元帝聽說祖逖在河南深得民心、屢建戰功,害怕對自己的統治造成威脅,想派戴若思為都督兗豫雍冀並司六州軍事、征西將軍予以牽製,致使祖逖心中十分不快。他還聽說朝中王敦、劉隗等人矛盾激化,擁兵自重,擔心朝廷發生內亂,北伐不能成功,因而憂憤成疾。於是,他把家眷安排在汝南大木山下。當時中原的士大夫都認為祖逖應該進據武牢,紛紛勸阻他不應把家屬安置在險要之處,但祖逖都沒有聽勸。