91³Ô¹ÏÍø

Watch CBS News

Tom Wilson has Gordie Howe hat trick in Capitals' 6-3 win against Rangers

Tom Wilson had two goals and an assist to lead the Washington Capitals past the New York Rangers 6-3 on Wednesday.

Wilson, who earlier in the day was named a member of Canada's Olympic roster, got into a fight with Sam Carrick in the second period for at least his second Gordie Howe hat trick — a goal, an assist and a fight — since March 3, 2025.

Justin Sourdif also had two goals and Anthony Beauvillier and Aliaksei Protas each scored for the Capitals, who have won two of the last three games.

Adam Fox, making his return from long-term injured reserve, had a goal and an assist for the Rangers, who have lost three straight. Vincent Trocheck and Braden Schneider also scored.

With the Capitals tied 1-1 and needing a spark in the second, Wilson rose to the occasion. The 28-year-old came streaking up ice and leveled Noah Laba before getting to the front of the net and roofing a feed from Connor McMichael to restore Washington's lead as he became the first Capital to hit the 20-goal mark this season. Minutes later, he answered for Laba's hit, fighting Carrick.

The fight, initiated by Carrick, put the Capitals on the power play. Sourdif snuck a loose puck past Jonathan Quick, who had 21 saves, to end a 16-game goal drought to make it 3-1.

Fox responded with a power-play goal of his own soon after to pull things to 3-2 going into the third.

Protas and Wilson, netting his 200th career goal, added insurance tallies late to cushion the lead.

Schneider brought New York back within two late.

Wilson assisted Sourdif on an empty-netter.

Charlie Lindgren made 22 saves for Washington.

Up next

Rangers: Visit Florida in the Winter Classic on Friday.

Capitals: Visit Ottawa on Thursday.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });