1842年5月13日,英军舰队离开甬江口外黄牛礁海域,开始向长江口进犯,并决定于北上途中顺便摧毁乍浦港。
5月17日,英舰驶抵乍浦海域,随即派出轮船侦察乍浦设防情况。
次日,即派军舰七艘,载陆军二千二百余人,对乍浦发起进攻。
英军以三艘大型军舰对西山咀等炮台实施炮击,登陆兵在四艘小型军舰的掩护下分三个纵队登陆。
右纵队九百余人首先在陈山西面的唐家湾上岸,遭清军抗击;左纵队八百余人由西山咀登陆,向清军阵地进攻;中央纵队三百余人由灯光山一带登岸,沿着山麓迅速推进,企图切断守军与乍浦城之间的联系,并协同左纵队夺占乍浦城。
唐家湾等处清军抗击约二小时,发现乍浦城方向起火,以为城已失守,即向平湖方向撤退。
驻守乍浦东南天尊庙的三百名旗兵,在退路已被敌左纵队切断的情况下,仍进行顽强的抵抗,连续击退英军数次冲锋,给敌人以重大杀伤,并毙敌中校军官一名。
英军炮击无效,最后使用火箭进攻乍浦的英军在搬运同伙的尸体和火药包才将该庙攻下。守军苦战三小时,大部阵亡。
英军占领天尊庙后,各纵队会合,直抵乍浦城下,由东门缘梯而入,占领了乍浦城。
英军在乍浦休整十天后,将该城焚掠一空,于5月28日全部登船北驶。
6月8日抵达长江口外的鸡骨礁一带集结,并派出轮船探测航道,侦察吴淞口设防情况。
清廷虽一再谕令加强长江口的防御,但在朝廷上下一意求和及两江提督牛鉴轻敌思想影响下,并未认真落实。
吴淞位于宝山县境黄浦江与长江汇合处,是长江的第一道门户。
自吴淞镇至宝山县城六七里长的江岸上,“筑有土塘,高约两丈,顶宽一丈七八尺,……缺口处安设大小炮位,既能御敌,亦可藏身,自外视之,俨如长城一道”。
土塘上共安炮一百五十四门,统称西炮台。在吴淞口东岸,筑有一略呈圆形的炮台,安炮二十七门,称为东炮台。
整个吴淞口,由江南提督陈化成和徐州镇总兵王志元等率兵二千四百名驻守。
其中五百名由总兵周世荣率领驻守东炮台,其余则防守吴淞镇至宝山一线。
战前,牛鉴也率兵千余驻于宝山,以为后援;宝山知县则带乡勇二千在东炮台后面接应。
另在吴淞与上海间的东沟两岸添设了数十尊大炮,驻兵四五百名,防止英军进窥上海。
6月13、14两日,侵华英军陆海军司令率舰船六艘、运输船十二艘至吴淞口外进行临战侦察。
6月16日晨,英军开始向吴淞发起进攻。
针对清军设防情况,英军确定以“皋华丽”号等三艘重型军舰从正面进攻西炮台,以“摩底士底”号等四艘轻型军舰突入黄浦江,进攻吴淞镇炮台和东炮台,威胁清军的侧后,并掩护登陆部队于吴淞镇附近登陆。