北角海战（The Battle of the North Cape，Seegefecht vor dem Nordkap）是第二次世界大战中，发生于英国与纳粹德国之间的一次海上战斗。因战斗区域大致位于挪威北角外海而得名。
在这场战斗中，德国海军舰艇编队试图搜寻并攻击西方盟国向苏联运输战争物资的运输船队，但因为情报外泄，与准备已久的英国皇家海军的重型舰只遭遇。经过激烈战斗，德军战列巡洋舰沙恩霍斯特号被击沉，而盟军运输船队平安抵达苏联汉科半岛。
这场海战发生于1943年底，是二战中英国与德国主力舰之间的最后一战。 战斗之后，德国再也没有能力派出大型战舰袭扰盟军北方航线。北方航线由此变得相对安全，直至战争结束。
背景
苏德战争爆发之后，英美两国开始向苏联运输物资，以共同反击纳粹德国。运输的航线主要有三条，一条是自太平洋到苏联远东地区，然后经过西伯利亚抵达战区。一条是自埃及中东和伊朗进入苏联。这两条路线离交战区都过于遥远，实用性不大。唯独第三条航线，从英国出发自北极海抵达苏联汉科半岛，是一条最快捷的航线。然而自1943年初，盟军迫于北极海地区德国潜艇活动频繁，停止了北极航线。
东线行动（Operation Ostfront，Unternehmen Ostfront）是德国海军拦截北极护航队的计划。 1943年12月22日，德国空军飞机发现向俄国航行的JW 55B护航队并展开跟踪。三天之后的12月25日，沙恩霍斯特号（舰长弗里茨·辛兹）和1936A级驱逐舰Z-29、Z-30、Z-33、Z-34、Z-38在海军少将埃里希·拜（Erich Bey）指挥下离开挪威阿尔塔峡湾（Alta Fjord），向护航队被发现的位置航行。
JW 55B护航队有19艘货船，两艘驱逐舰和三艘其他船只在近距离护航，八艘本土舰队的驱逐舰以昂斯洛号（HMS Onslow）为首担任远程护航。也在这一区域，由俄国返航的RA 55A护航队有22艘货船，两艘驱逐舰和四艘其他船只在近距离护航，六艘本土舰队的驱逐舰以米尔恩号（HMS Milne）为首担任远程护航。
本土舰队负责为向俄国航行的船队护航。本土舰队司令海军上将布鲁斯·弗雷泽爵士（Sir Bruce Fraser）希望能消除沙恩霍斯特号这个重大威胁，计划在1943年圣诞节期间用JW 55B护航队引出敌人。而先前的一支护航队JW 55A已经在第一分队（Force 1）的额外保护下安全抵达摩尔曼斯克，第一分队包括轻巡洋舰贝尔法斯特号（HMS Belfast）、谢菲尔德号（HMS Sheffield）和重巡洋舰诺福克号（HMS Norfolk），由海军中将罗伯特·伯内特（Robert Burnett）指挥，旗舰为贝尔法斯特号。
弗雷泽预计并希望沙恩霍斯特号尝试攻击JW 55B护航队。在舰长会议上，弗雷泽描述他的计划是在护航队与挪威基地之间拦截沙恩霍斯特号，在北极的夜间接近敌人到12000码以内，点亮照明弹，并在火控雷达指引下射击。
JW 55B护航队于12月20日离开埃维湾（Loch Ewe），12月23日，向东缓慢航行到距挪威北部海岸220海里处，情报表明它已被德军飞机发现并跟踪。于是伯内特率领的第一分队由摩尔曼斯克向西出发，弗雷泽率第二分队（Force 2）出海，由西方中速接近。第二分队包括旗舰战列舰约克公爵号（HMS Duke of York）、轻巡洋舰牙买加号（HMS Jamaica）和S级驱逐舰野人号（HMS Savage）、 蝎号（Scorpion）、索马勒兹号（HMS Saumarez），挪威皇家海军斯图尔号（HNoMS Stord）。弗雷泽担心沙恩霍斯特号不会离开基地，决定在有必要之前绝不靠近。
战斗
12月26日，在恶劣的海象条件下，拜无法找到护航队的准确位置。他认为已经超过了敌人，便派驱逐舰向南扩大搜索区域。然而这五艘驱逐舰与沙舰相距过远，失去灯光联系之后，就再也未能为沙舰后来的战斗发挥任何作用，在北角海战结束后沿着原航线返回母港。 
弗雷泽则准备好面对德军的攻击，命令返航的空船队RA 55A向北离开预期的战场，并下令JW 55B扭转航线，以使战舰接近。稍后，他下令RA 55A的四艘驱逐舰无敌号（HMS Matchless）、火枪手号（HMS Musketeer）、及时号（HMS Opportune）和悍妇号（HMS Virago）与护航队分离，加入他的编队。
9:00之后，没有护航舰艇的沙恩霍斯特号遭遇到伯内特的第一分队。英国巡洋舰在约13000码的距离上开火，沙恩霍斯特号以齐射回应。巡洋舰没有中弹，而沙恩霍斯特号被命中两弹，一发炮弹摧毁了雷达控制系统，使沙恩霍斯特号几乎像是在暴风雪中失明了一样。没有雷达，炮手被迫瞄准敌人的炮口闪光，而由于两艘英国巡洋舰使用了新的无焰发射药，使这变得更加困难，只有诺福克号是相对容易瞄准的目标。拜判定他正在与一艘战列舰交战，于是转向南尝试与追猎者保持距离，或许是为了吸引它们离开护航队。
沙恩霍斯特号一度摆脱了追猎者，拜转向东北企图绕着它们转圈，伯内特并未追逐，第一分队航行到适当位置以便保护船队，因为海况将他的巡洋舰航速限制在24节。他的这个决定受到部分人士的批评，而弗雷泽支持这个决定。但午后不久，沙恩霍斯特号再次接近巡洋舰，双方再次交火。沙恩霍斯特号命中诺福克号，击毁了雷达和一个炮塔。这次交火后，拜决定返回港口，同时下令驱逐舰根据一艘潜艇报告的位置攻击护航队。但这个位置报告过时了，驱逐舰错过了护航队。
沙恩霍斯特号向南航行了好几小时，伯内特在后面追赶，但谢菲尔德号和诺福克号都因遭遇引擎问题而落后。贝尔法斯特号在一段时间里处于危险的无掩护状态。但缺乏能工作的雷达的德国人无法利用这个优势，而贝尔法斯特号再次通过雷达接触沙恩霍斯特号。
同时，一艘真正的战列舰，约克公爵号，以及四艘正在加紧进入鱼雷发射阵位的驱逐舰已经获知贝尔法斯特号的接触，约克公爵号很快在16:15用自己的雷达发现了沙恩霍斯特号。并向全舷射位置机动。
16:48，贝尔法斯特号发射照明弹照亮沙恩霍斯特号，约克公爵号清楚地观测到沙恩霍斯特号毫无防备，炮口对着舰艏和舰艉。约克公爵号在11920码距离上开火，首次齐射即取得命中，沙恩霍斯特号最前的主炮塔（“安东”）稍后便不能使用。另一次齐射摧毁了飞机机库。拜转向北，但与巡洋舰诺福克号和贝尔法斯特交火，于是转向东，以31节高速航行。
拜保持与英国军舰间的距离来增加胜利的希望。沙恩霍斯特号发射的两发11英寸炮弹擦过约克公爵号的桅杆，切断了重要的雷达电缆，但拜并不知情。18:20，沙恩霍斯特号的命运突然戏剧性地变坏，约克公爵号发射的一发炮弹在极限距离上穿透了装甲带并摧毁了1号锅炉室，使航速掉到10节，虽然修复工作很快使她能以22节航速航行，但变得易于受到驱逐舰的攻击。五分钟后，拜向德国海军司令部发出他的最后一封无线电报：“我们将战斗到打完最后一发炮弹。” 
18:50，沙恩霍斯特号转向右侧与野人号、索马勒兹号交火，但这也使蝎号和斯图尔号在右舷命中一弹。沙恩霍斯特号继续转向以规避鱼雷。野人号、索马勒兹号命中左舷三弹。索马勒兹号则被沙恩霍斯特号副炮命中数弹，11人阵亡，11人受伤。
沙恩霍斯特由于鱼雷的伤害，速度再次掉到10节，使约克公爵号迅速缩短了距离。沙恩霍斯特号上方的照明弹“挂在她上方就像一个吊灯”，约克公爵号和牙买加号在仅10,400码距离上重新开火。19:15，贝尔法斯特号由北面加入。英舰向德舰打出密集的炮弹，牙买加号和贝尔法斯特号向缓慢移动的目标发射了剩余的鱼雷。无敌号、火枪手号、及时号和悍妇号射出超过19枚鱼雷。19:45，沙尔霍斯特号终于倾覆沉没，而螺旋桨还在转动，估计沉没位置在type:event，后来在type:event被发现并拍摄了影片。在1,968名舰员中只有30名被蝎号救起，6名被无敌号救起。拜和舰长辛兹都不在获救之列，蝎子号试图救援拜，但他沉下去。弗雷泽下令分队前往摩尔曼斯克，发报给海军部“沙恩霍斯特号沉没”，答复是“做得太好了”。
结果
沙恩霍斯特号上的幸存者上岸，1944年1月2日，斯卡帕湾
12月26日晚，弗雷泽向约克公爵上的军官作简报说：“先生们，与沙恩霍斯特号的战斗已经以我们的胜利而告终。我希望当你们之中的任何人指挥一艘战舰面对强大数倍的对手时，会像今天沙恩霍斯特号的指挥官一样勇敢地指挥你的船。”
沙恩霍斯特号的损失证明了雷达在现代海战中至关重要。虽然这艘战列巡洋舰能胜过它的所有对手（约克公爵号战列舰除外），但太早失去火控雷达和恶劣天气造成的问题一起将她陷于显著劣势之中。在约克公爵号由火控雷达控制的52次齐射中，沙恩霍斯特被跨射31次。这次战斗之后，德国海军指挥官卡尔·邓尼茨表示：“没有有效的雷达设备，水面舰艇就不再能战斗。”
斯图尔号和蝎号从一个靠东的位置发射了鱼雷，斯图尔号在距沙恩霍斯特号1500码处发射了八枚鱼雷，同时也用舰炮开火。战斗结束后，弗雷泽向海军部发送了这样的信息：“请转达挪威海军总司令，斯图尔号在战斗中展示了非常勇敢的表现，我很为她感到骄傲……”约克公爵号的指挥官在1944年2月5日接受《晚间新闻》（The Evening News）的访谈时说：“挪威驱逐舰斯图尔号进行了整个行动中最大胆的攻击……”