李秀成下定了进攻上海的决心,1860年8月14日,他正式宣布将攻取上海。
上海城内的空气由此变得分外紧张,各国侨民、商人竞相将行李皮箱搬上船,自愿者则纷纷应征入伍,各种武器也被集中起来准备用于作战。数日之内,约一千五百名英法联军已被部署于租界周围的各个要害阵地以及七座城门之上,“许多事情都以超常速度完成了”。
8月16日,李秀成偕洪仁玕率部自松江前进,占领了上海周边的泗泾镇。卜鲁斯和英国海陆军军官急忙给李秀成写信,申明上海市区本身及租界正被英法军事占领,劝其勿攻上海,否则“会被认为是开始与联军对抗,并将得到相应的制裁”。
李秀成没有能够及时收到这些信件,其部继续由泗泾进至上海西南的七宝、虹桥、法华诸镇。
8月18日,太平军的先锋约三千人直抵上海徐家汇,逼近上海西南两门。这时李秀成显然仍希望列强保持中立,他致书英法美等各国公使,提出太平军攻城时的几个注意事项:洋人最好留在屋内,等到战火平息再出来;洋人之住宅店面,凡挂出黄旗,便可不受干扰;所有洋人教堂也得挂黄旗,以免受军队破坏。
太平军在松江与勇军作战时,勇军中混有四个洋人,由于难以辨别,其中一人被太平军士兵杀死。为了表明对外国人进行保护的诚意,李秀成特意下令处决了那名士兵。
可是不管李秀成怎样再三声明和显示诚意,洋人始终置之不理。因为有大风雨,太平军也没有立即攻城,直到次日才从三面围攻上海,城内的英法联军随即向太平军开火。
战事一开,李秀成大感震惊和困惑。这倒不仅仅是因为洋人动了手,事实上,从谈判失败和与洋枪队交手起,他就已经有所预料,他真正感到意外的是英法联军的实力竟然如此之强——枪炮弹密集如雨,且极为准确。
李秀成可能一直把洋枪队错认为是英法联军的一部分,他哪里知道洋枪队不过是临时拼凑的杂牌军,不管是士兵的战斗素质还是武器的精良程度,都无法与真正的西方正规军相比。他的部下同样对此毫无心理准备,当炮弹倾泻到阵地上时,一个个竟然都像石头一样呆立不动,既不知道隐蔽也不回一枪,数百名太平军官兵因此当场丧命。
1860年8月20日,李秀成挥军再攻上海。战斗更趋激烈,黄浦江上的英舰也加入进来,用舰炮对太平军进行猛烈轰击。太平军伤亡惨重,李秀成脸部受伤,只得退至徐家汇。
东线战事一向势如破竹,没想到会在上海吃大败仗,其后加盟太平军的洋将萨维奇也英勇战死。李秀成既痛苦又失望,他致函英美等各国领事,责备各国不守中立,并且说:“我压住数日来的愤慨,宽厚地让出一条通道,以便我们相互交换我们目前的阵地。”
打仗都是靠实力说话,这种信函自然不可能得到任何回音。此时太平军后翼已受到清军威胁,恰好嘉兴被围求救,李秀成便顺势南下浙江,以解嘉兴太平军之围。
进攻上海受挫是太平军战史上的一个转折点。除未能占领上海外,这次战役对他们在其他方面的军事和政治利益也造成了难以弥补的损失。军事方面,李秀成在上海耽搁的这两个月,等于救了曾国藩之急,也因而使他错失了消灭湘军的天赐良机。这还不算,由于与洋兵为敌,英法联军不仅禁止太平军在距上海城五十公里以内布兵,而且禁止洋商逆江而上,向太平军提供补给和武器。政治方面,洪仁玕的外交政策完全失败,他在太平天国领导集团中的权力也开始日益衰落。
事后,洪仁玕归咎于李秀成,说他本人已经与来苏州讲和的“洋官”谈妥,是李秀成不肯,执意要打上海,最后“中空城计败回”。这种说法颇有点欲加之罪、何患无辞的味道,其实连洪仁玕自己都清楚,来苏州的洋人根本不是什么“讲和的洋官”,而仅仅是几个没有任何政治背景及其权力使命的传教士罢了。
说到底,上海之败还是因为太平军和清廷一样,对西方根本不了解,亦缺乏正确有效的外交政策和沟通手法,结果便只能是事与愿违,南辕北辙。
在江南官员看来,保住了上海,似乎说明声名狼藉的洋枪队也已经没有了存在的必要。吴煦奉薛焕之命,写信给美国领事士觅威良,告诉他:“中国人以前为消灭海盗雇佣的外国人现已全部解雇了。”吴煦在信中还补充说,除外国海关人员外,中国政府没有雇佣任何外国人。
《北华捷报》随后证实了吴煦的说法,确认洋枪队已经全部解散。至于华尔,他在青浦遭遇挫败后就渐渐销声匿迹。有人说这位美国冒险家负伤后,他的“幕后老板”杨坊还以为他已经死了,是曾将华尔推荐给杨坊的英商希尔给了他一间房子,并“守护他,照料他”。还有些报道则说华尔到国外去治疗了,不过对于他的确切行踪,谁都无法提供可靠的消息。