91³Ô¹ÏÍø

Watch CBS News

Heiskanen scores in overtime to push the Stars past the Blackhawks, 4-3

Defenseman Miro Heiskanen scored 22 seconds into overtime to give the Dallas Stars a 4-3 victory over the Chicago Blackhawks on Sunday.

Second in the Western Conference, the Stars are 11-0-1 in their last 12.

Young Chicago star Connor Bedard forced the extra period by scoring with 1:20 left in regulation with the Blackhawks playing with an extra skater.

Mavrik Bourque had a goal and an assist for Dallas. Nathan Bastian and Justin Hryckowian also scored, and Casey DeSmith made 12 saves.

Tyler Bertuzzi and rookie defenseman Sam Rinzel also scored for Chicago, and Arvid Soderblom stopped 28 shots. The Blackhawks are 2-7-4 in their last 13.

The Stars turned a 2-1 deficit going into the third period into a 3-2 lead on Bourque's goal 42 seconds in and Hryckowian's power-play goal at 9:40.

The Blackhawks took a 2-0 lead in the first period on a deflection by Bertuzzi at 6:59 and Rinzel's blast from the slot fewer than two minutes later. Bastian scored Dallas' first goal late in the period.

Soderblom made consecutive starts for the first time this season with No. 1 Blackhawks goalie Spencer Knight sidelined with an illness.

Blackhawks rookie forward Oliver Moore left midway through the first period after three shifts with an undisclosed injury when sliding into the end boards seconds after assisting on Rinzel's goal.

Dallas improved to 6-12-4 when trailing after two periods, while Chicago dropped to 15-3-2 when leading after two.

Up next

Blackhawks: Complete a back-to-back hosting Utah on Monday night to begin a home-and-home with the Mammoth.

Stars: Host Vegas on Tuesday night in the third game of a six-game homestand.

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(); } }); }); }); });