隨著革命形勢的發展,上海的局勢風起雲湧。湧動在上海灘的主要有三股勢力:北伐軍國民黨,孫傳芳、張宗昌等軍閥,共產黨領導的工人武裝。黃金榮利用自己的機智圓滑,遊走於三大勢力之間,做起了“三麵先生”。
1919年,盧永祥升任浙江督軍,勢力占據了上海,這讓江蘇督軍齊燮元羨慕得兩眼發紅,為了奪回上海,齊盧之戰打響。正當雙方打得精疲力竭之時,孫傳芳帶領隊伍,一舉擊敗了盧永祥,盧永祥見大勢已去,倉皇逃離。但是正當孫傳芳和齊燮元為如何瓜分上海爭得不可開交之時,奉係軍閥張作霖又帶領人馬,占據了上海。軍閥混戰給上海帶了深重的創傷,奉係軍閥“無日不搶,無日不燒,殺掠**,窮凶極惡”,以至於當孩子哭鬧時,大人說奉軍來了,孩子便嚇得不敢出聲。
奉係軍閥的統治不得人心,看有機可乘的孫傳芳便又偷偷帶領部隊,乘黑夜迅速包圍了上海,將奉係軍隊趕出了上海,一直打到徐州,上海又落入了孫傳芳的手中。但是,孫傳芳並不是個善主,他也對上海橫征暴斂,禁止人民集會結社,後來又兩次鎮壓工人起義。其所屬大刀隊在南市、滬西肆意屠殺市民,把血淋淋的人頭掛在路旁電線杆上。
孫傳芳的倒行逆施同樣引起了反抗,這次的對手是從南而來的國民黨北伐軍。北伐軍勢如破竹,打得孫傳芳如落湯雞般節節敗退,為了對付共同的敵人,孫傳芳隻好回過頭來向過去的仇敵張作霖求援,共同禦敵。張作霖也知道北伐的目標是自己,於是又一次南下,協助孫傳芳防禦北伐軍對上海的圍攻。
上海除了有軍閥勢力外,另外還有兩股強大的力量,那就是國民黨與共產黨。國民黨在工商界及知識分子中悄悄發展其組織,在社會上層頗得人心,加之北伐之勢,國民黨在上海的勢力十分龐大;另一股勢力是共產黨,共產黨經過多年的經營,將支部開到工廠和學校,大力培養革命群眾,並且建立了總工會,手下的工人群眾有80萬人,另外還有一支工人武裝,勢力也不容小覷。