91³Ô¹ÏÍø

Watch CBS News

Evgeni Malkin's overtime goal highlights a 4-point game as Penguins top Flyers 5-4

Evgeni Malkin scored his second goal at 1:03 of overtime and the Pittsburgh Penguins rallied to beat the Philadelphia Flyers 5-4 on Thursday night.

Malkin scored the tying goal in the third period and added two assists for Pittsburgh. Malkin has the 13th-most assists with one NHL franchise.

Erik Karlsson had two goals and Philip Tomasino also scored for Pittsburgh, which trailed 3-0 in the second period. Sidney Crosby also added an assist. Pittsburgh is 400-92-49 when Crosby and Malkin record a point.

Pittsburgh's Michael Bunting missed the game and is out indefinitely after undergoing surgery to remove his appendix.

Alex Nedeljkovic allowed three goals on 15 shots and was pulled for the second time in three starts. Joel Blomqvist made 21 saves in relief.

Matvei Michkov had two goals and an assist for Philadelphia. Owen Tippett scored his fourth goal in three games and Noah Cates also scored in consecutive games. Samuel Ersson stopped 20 shots.

Philadelphia's Garnet Hathaway left in the second period following a center-ice hit from Bokondji Imama.

Flyers: Philadelphia saw its three-game win streak come to an end. The Flyers, who outscored the opposition 15-6 during the streak, have points in five of its last six games.

Penguins: Pittsburgh snapped a four-game losing streak and rebounded from a 6-1 rout at Philadelphia on Tuesday. Pittsburgh was outscored 22-9 during its four-game skid.

Malkin, on a 2-on-1 with Kris Letang, paused to avoid a sliding Jamie Drysdale before putting a shot behind Ersson. Earlier in the game, Tomasino and Karlsson scored less than two minutes after Michkov made it 3-0.

Pittsburgh has points in 10 straight home games against the Flyers, tied for the second-longest streak against any opponent.

Both teams play again on Saturday. Pittsburgh hosts Boston, and Philadelphia travels to Winnipeg.

___

AP NHL: https://apnews.com/hub/nhl

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });