北角海戰（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）的訪談時說：「挪威驅逐艦斯圖爾號進行了整個行動中最大膽的攻擊……」