91³Ô¹ÏÍø

Watch CBS News

Jack Hughes scores twice as Devils beat Stars 6-4, end Dallas streak with four-goal first period

Jack Hughes scored twice in New Jersey's four-goal first period, and the Devils handed Dallas consecutive losses in regulation for the first time in two months, beating the Stars 6-4 on Tuesday night.

Jesper Bratt and Connor Brown also had goals as the Devils put four of their first five shots past Jake Oettinger to end the Dallas goalie's career-best point streak at 14 games. Oettinger was pulled after the first period.

Wyatt Johnston had two goals to reach 40 for the first time in his career, and Jason Robertson scored his 39th for Dallas, which hadn't lost two in a row in regulation since dropping three straight from Jan. 13-18.

Johnston's second goal was his NHL-leading 24th on the power play, extending his franchise record set two nights earlier in a 3-2 loss to Vegas.

Playing for the first time since clinching a Western Conference playoff spot, the Stars lost to an East also-ran and fell seven points behind NHL-leading Colorado, their Central Division rival.

Hughes beat Oettinger one-on-one for both his goals, the latter when Luke Hughes connected with him on a two-line pass for a breakaway and a 4-1 lead 17:19 into the first.

Hughes has eight goals in eight games after going without one in his first five games following the gold medal-winning goal for Team USA against Canada in the Milan Cortina Olympics.

Johnston tied his career high with his 38th assist when Robertson got Dallas within a goal midway through the second period.

New Jersey's Timo Meier and Mavrik Bourque of Dallas traded third-period goals before an empty-netter from Dougie Hamilton.

Casey DeSmith replaced Oettinger and gave the Stars a chance late by stopping the first 12 shots he faced. Jake Allen had 23 saves for the Devils.

Devils: At Nashville on Thursday on the fourth game of a five-game trip.

Stars: At the Islanders on Thursday to start a four-game trip.

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