虎门之战，发生于清道光二十一年（1841年）2月，是第一次鸦片战争期间，英国远征军进攻广州门户虎门要塞与清朝守军发生的一场重要战役。这场战役共有三次战斗，分别为沙角山、大角山战斗，横档岛水道战斗和横档一线战斗。这场战役最终以虎门要塞陷落，英军获胜告终，广东水师提督关天培在这场战役中阵亡。
源起
1840年7月28日，懿律和义律率“威里士厘”号等舰船八艘，驶离舟山群岛北上，于8月9日进泊大沽口外。道光帝在8月9日接到琦善的复奏，得悉天津炮位陈旧、兵力不足时，立刻派遣琦善前往大沽口外与英军和谈。琦善与义律在大沽口举行会谈中对英方所提要求，表示“定能代申冤抑”，但前提是英军“返棹南还，听候办理”。9月15日，英军方表示同意将谈判地点改到广东，并即日起碇南返。11月29日，琦善到达广州接替林则徐，不久即与英方代表开始谈判。义律在和谈中坚持其偿还烟价二千万元，割让香港，开辟厦门、定海为商埠等一系列要求，并一再以开战相威胁，结果谈判陷入僵局。英军为了争取主动地位，于1840年12月上旬，出动舰船二十余艘陆续驶抵虎门外，准备进行武力进攻。
战前准备
英国远征军
由于琦善和义律和谈持续一个月未有结果，1841年1月，英方决定展示武力来迫使大清屈服。此时英国远征军在虎门外海的陆海力量为，海军战舰十四艘，载炮446门、武装轮船四艘，每艘载炮4门，以及运输船若干。陆军计2000人，由马德里斯土著步兵37团，皇家步兵第18团，第26团和第49团，此外炮兵、工兵组成，由布尔利上校统率。
虎门要塞布防情况
虎门要塞位于珠江入海处，是从海上进入广州的咽喉要地，地势十分险要。整个防线由三道门户构成，分别为：沙角山、大角山，构成第一道防线；横档岛耸立江中，将水道分隔为二。构成第二道防线。由横档岛再上溯五里，江中有大虎山岛，构成第三道防线。沙角山、大角山均筑有炮台（沙角炮台筑于1801年，大角炮台筑于1832年），关天培以两台间的炮火不能形成交叉火力，无法封锁海口，将其改为信号炮台，担负了望警报任务。上横档岛早在1717年（康熙五十六年）即修筑了横档炮台，其东岸之南山（亦称武山）修筑了威远炮台；1815年（嘉庆二十年）又在威远炮台北侧修筑了镇远炮台。
关天培在任期间，于威远、镇远炮台之间添筑了靖远炮台，于上横档岛西端添筑了永安炮台，西岸南沙山（即芦湾山）添筑了巩固炮台。到鸦片战争时，横档地区共有炮台六座，安置新旧火炮二百一十二门。此外，在两广总督邓廷桢的协助下，关天培还在横档岛和南山之间建造了两道铁链，以防敌舰阑入。对1818年修筑的大虎山炮台，关天培到任后也作了加固，并添置了炮位。在炮台构筑方面也作了一些改进和加固，但所有新旧炮台，仍未脱离古代城堡的结构形式，长墙高台，既无掩盖，又无交通壕，战时人员、火炮易受损伤。
林则徐抵粤后，在严厉禁烟的同时，陆续采取了一系列战备措施，以应付日益紧张的形势。这些措施是：整顿水师，严肃军纪，演练枪炮，以提高战斗力；在尖沙嘴、官涌等处新建炮台；新添5000斤-9000斤秘密购置西洋大炮及他夷精制生铁大炮数十门，使虎门各炮台的大炮增至三百余门；购置西洋大船，改装民船，招募乡勇；此外又抽调广东内地营汛防兵，加强第一线兵力，使虎门的水陆兵力增至三千余名，澳门增至一千三百余名，尖沙嘴增至八百余名。
琦善奉命赴粤后积极筹备通过谈判解决问题，他认为“英夷强横，非中国可能敌”。于是抵达广州后，将数千名义勇解散。虎门内外各隘口原有防兵万余，琦善到任后，又大加裁撤，并将水师水勇船只或撤或裁，又拆除江底暗桩等障碍物，以向英国方面展现和谈诚意，求得早日达成和议。此时虎门每座只留炮台仅余数十人至百人不等，1841年1月，英国舰队威逼虎门，琦善紧急调兵增援虎门。
作战过程
沙角、大角、战斗
1841年1月7日上午8时，英军舰队向虎门要塞第一道门户、沙角、大角炮台同时发起进攻。英军以右支队担任主攻，由“加略普”号等三艘军舰和四艘轮船运载，负责进攻沙角炮台。当三艘军舰驶达预定水域后，立即对沙角炮台进行炮击。与此同时，登陆部队在川鼻湾登岸，抄袭炮台侧后。由于守军大部集中在炮台及其周围，四周要隘和山顶兵力薄弱，因此，仅仅两小时英军即占领了炮台各制高点，并安好了野战炮，俯击沙角炮台。英军马达加斯加号、进取号、武装轮转在运送完登陆部队后立即开动，参加对沙角炮台的炮击。复仇女神号、皇后号、在英军占领沙角山制高点后亦移至炮台正面，炮击沙角炮台。沙角炮台原为信炮台，火力不济，工事不坚，在英军水陆夹击下，士卒腹背受敌，伤亡甚众。不久，英军突击炮台，守台清军凭借炮火抵抗，但无法抵御居高临下的英军野战炮轰击。守军欲发“动预埋地雷”，但未能奏效。伤亡惨重，陈连升父子相继阵亡，沙角炮台遂被英军占领。
进攻大角炮台的英军左支队，主要由“萨马兰”号等四艘军舰组成。它们锚泊在距大角炮台很近的地方，用舷侧炮猛烈地炮火压制炮台，摧毁胸墙、炮洞、围墙多处。炮台守军开炮对抗，然效力有限，守军在英军猛烈地炮火下无法驻足。与此同时，英军乘坐小船从南北两侧同时登陆，包抄炮台，守军被迫将大炮推入海内，突围撤退，大角炮台失陷。英军放火烧毁营房，拆毁炮台，然后全部撤回舰上。
在进攻沙角的同时，英国海军向停泊在晏沉湾附近的清军水师发起进攻，清军战船火力无法与英军战舰相抗衡，水师战船十一余艘被击毁，英军从清军水师战船上缴获大炮82门，其中10门是葡萄牙制造的铜炮。
沙角、大角之战，清军战死227人，重伤死5人，伤462人，共计伤亡744人，英军四十人轻重伤。在这次防御战斗中，清军凭借有利地形和要塞工事，给了进攻之英军一定的杀伤，但由于防守兵力不足，战术呆板，炮台侧后暴露，经不起英军正面炮击与侧后登陆的包围攻击而陷入被动。当时，水师提督关天培和总兵李廷钰等各率兵数百防守横档、武山各炮台。关天培深感前线兵力单薄，派李廷钰回广州“哭求增兵”，全省文武亦请求派兵往援，而琦善却以有碍“抚议”为由，按兵不动。结果坐视沙角、大角两炮台被英军攻占。
沙角、大角两炮台陷落后，英国军舰随即抵达横档一线，对清朝保持军事压力，在英军强大的武力威慑下，琦善被迫与英方签订《穿鼻草约》。
三门水道战斗
1月27日，广东败报传到北京，道光帝甚为恼怒，当即决定对英宣战。他一面命令文华殿大学士穆彰阿等将英国侵略行径“通谕中外知之”，一面命令两江总督伊里布“克日进兵，收复定海”，令琦善“激励士卒，奋勇直前”，并令沿海各省将军督抚“加意巡查，来则攻击”。接着，又令御前大臣奕山为靖逆将军，户部尚书隆文和湖南提督杨芳为参赞大臣，前往广东主持军务。另从湖南、四川、贵州、江西、湖北和贵州各省调集援兵，兼程开赴广东。2月26日，道光帝接到广东巡抚怡良关于英国舰队强占香港的奏报，立即下令将琦善革职锁拿，并查抄其全部家产。同时，补授原刑部尚书祁贡为两广总督，未到任前由怡良署理。道光帝著怡良等“一俟奕山、隆文到粤，即行大张挞伐，极力攻剿”。英方在获悉清廷向广东调兵遣将和对英宣战的消息后，便立即命令英军备战。英国军舰开始陆续向虎门口外集结，准备进攻虎门和广州，以先发制人。
2月18日-2月20日，英国舰队再次抵达虎门一线，此时清军正紧急修建防御工事，以防备英军再次进攻。重点在三门水道一线修筑炮台，阻塞航道。22日，英军拦截到一艘清军交通船，截获的公函文件显示要求虎门清军尽快完成三门水道一线的防御工事建设，英军遂决定“检查通往亚娘鞋岛侧后的水道”。23日，英国舰队抵近正在三门水道修建防御工事清军时清军随即开炮，英舰开火还击，并出兵摧毁清军炮台。24日，英国舰队再次驶入三门水道，毁坏了清军在三门水道航线上设置的障碍物，并与武山炮台清军发生交火，开辟航道后，继续上驶，抵达太平墟时，折向返回。
横档一线战斗
2月24日，英军向广东水师提督关天培发出最后通牒，要求交出炮台。关天培对英方要求置之不理，将其广东水师提督官印和自己的几件旧衣服与几枚坠齿装入一只木匣由家丁送走以示诀别，然后来到靖远炮台，坐镇指挥，并将自己的全部财物拿出分赠给炮台守军，以激励炮台守军士气。
25日，英军完成了进攻虎门的临战准备。此时，英军发现下横档岛没有设防，遂于2月25日下午派出炮兵分队，携带臼炮三门，在一百五十名步兵护卫下，由“复仇女神号”远洋汽轮兵舰运至该岛登陆，并连夜选择阵地，安设炮位。
26日清晨，占据下横档岛的英军炮兵猛烈炮击上横档岛，压制横档、永安两炮台的火力。与此同时，英军派舰船阻断清军增援上横档岛的水道，另以四艘军舰由西航道驶入，对上横档岛形成半月形包围，用舰炮轰击，以掩护另外三艘大型舰船和三艘火箭船进攻东岸的南山。一个多小时后，上横档岛守军被压缩于炮台内，英军乘势在西端的永安炮台附近登陆。经过激战，守军阵亡三百余人，一部被俘，少数突围撤退，上横档岛遂被英军占领。
进攻南山的英舰由于风潮不顺，直到上午11时半，两艘最大的战舰“伯兰汉”号和“麦尔威厘”号才乘涨潮冒着炮火驶抵距南山一里左右的水域，以右舷炮向威远、靖远炮台轰击。关天培在靖远炮台亲自督战。不久，英军300余人在炮台翼侧登陆，威远、靖远、镇远三炮台守军在英国舰队的猛烈轰击下，坚持抗击一个半小时，镇远台守军不支先溃。在靖远炮台指挥作战的关天培身受重伤，仍死战不退，最后与炮台守军一起阵亡。英军攻下南山各炮台后，用汽船拔除水中木桩，破坏铁链，疏通航道，以备溯江进攻广州。当日下午4时许，英军另一部进攻西岸南沙山下的巩固炮台，炮台守军不战自溃，英军将炮台和营房毁坏后，撤回军舰。此役清军500余人战死，1200人被俘，英军伤亡5人。大虎山清军在横档一线战斗失利后不久便放弃炮台，先行撤退，虎门要塞各炮台皆被英军攻破。
后续战斗
英军攻破虎门横档地区六座炮台之后，2月27日即由“加略普”号舰长率领军舰五艘、轮船二只溯珠江而上，进攻离广州仅六十里的乌涌。该处由署湖南提督祥福等率领湖南兵九百名（2月22日才赶到广东）和广东兵七百人驻守。由于工事尚未就绪，加之江水暴涨，炮位多没水中，只有东南角一炮，可以射击，但炮架笨重，土质又松软，不能转动，以致不能命中。英军立即换乘舢板登陆，直扑炮台。祥福等率部抗击，用鸟枪阻击英军。后因火药将尽，被迫撤退。英军乘势猛攻，占领炮台。五百余清军阵亡，其余溃散，祥福被清军自己人踩踏致死。3月2日，英军又西陷猎德炮台。
结局
虎门之战，是鸦片战争期间最为重要的一场作战，对当时军事和政治局面均产生重大影响。随着要塞失守，致使广州失去了一道重要的防御屏障，一时门户大开。英国军舰沿珠江口抵达广州城下，使清朝在军事和外交上陷入被动局面。