四行倉庫,是金城銀行、大陸銀行、鹽業銀行、中南銀行共同投資建造的倉庫。倉庫内儲存了幾萬包糧食、牛皮和絲繭等物資。謝晉元率部進入倉庫後,利用庫倉裡的物資和沙包,将底層門窗全部堵死,二層以上窗口堵塞一半,以利投彈射擊。倉庫東南角有一個煙雜店,謝晉元命令士兵打了一個高寬約一米的牆洞與之相通,店外堆滿沙袋。樓上留一窗口,以機槍警戒,與對面新垃圾橋北堍的英軍碉堡可以通話。又在倉庫外布置了一支部隊,沿蘇州河倉庫兩側布置了沙袋工事,狙擊敵人。謝晉元的部署可謂天衣無縫,使日軍進攻時感到非常棘手。
第二天天剛亮,天空一陣嗡嗡響,幾架日本飛機像老鷹一樣在低空盤旋。謝晉元料定飛機不敢投彈轟炸,公共租界就在咫寸之遙,炸彈很容易誤落到租界,引起國際争端。
下午2時,日軍開始湧向蘇州河。謝晉元下令開火。前沿部隊也突然從沙袋工事後投彈、射擊,與倉庫樓上形成火力交叉,殺傷了大批敵人,并炸毀了兩輛戰車。激戰兩小時後,前沿部隊從煙雜店退入倉庫。日軍尾随着企圖沖進倉庫,煙雜店外的沙袋工事後扔出大批手榴彈,炸得日軍血肉橫飛。以後,日軍小批部隊輪番進攻,在守軍的掃射下,丢下一具具屍體,退回蘇州河。
第一天戰鬥,共擊斃日軍80餘名,被打傷的敵人就更多了。四行倉庫對面租界裡的英國駐軍,目睹謝晉元孤軍與日軍作戰,他唯恐危及租界安全,多次派人跟謝晉元聯系,勸說中國軍人卸下武器,退入租界。英國駐軍願意出面與日軍周旋确保謝晉元部隊的生命安全。謝晉元毅然拒絕,說:“我們是中國軍人,沒有上級的命令,我們死也不退!”
謝晉元率孤軍死守四行倉庫,抗擊日軍的消息,傳遍了上海。自第一天開戰以來,從早到晚,有數萬群衆,聚集在蘇州河南岸租界,隔河觀看,群情激昂,人人振奮。市民們紛紛隔河向堅守在四行倉庫裡的中國士兵揮手緻意,甚至連租界裡的外國人,也直翹大姆指。上海各界人民自動組織起來,慰勞自己的軍隊。各種食品、藥物堆積如山,隻是苦于交通阻隔,很難送進倉庫。唯一的一條通道,是那個煙雜店的牆洞。但接近煙雜店很危險,子彈亂飛,随時都有犧牲的可能。這工作就由參加戰地服務隊的童子軍承擔,孩子目标小,動作靈活,不易被日軍覺察。
謝晉元與800壯士堅守倉庫4天4夜,孤軍與數十倍于己的日軍作戰的英雄事迹,迅速在國内引起強烈的反響。當時,有作詞作曲家将此事寫成歌曲,歌詞是這樣的:“中國不會亡,中國不會亡,你看那民族英雄謝團長。四面都是炮火,四畫都是豺狼。甯願死,不退讓,甯願死,不投降!