91³Ô¹ÏÍø

Watch CBS News

Bryan Reynolds homers as Pirates blank Cubs 2-0

Bryan Reynolds hit a two-run homer and Carmen Mlodzinski pitched six-hit ball into the sixth inning, helping the Pittsburgh Pirates beat the Chicago Cubs 2-0 on Friday.

Pittsburgh was shut down by Shota Imanaga before breaking through against Caleb Thielbar in the seventh. Ryan O'Hearn hit a leadoff single for the Pirates' first hit of the chilly afternoon, and Reynolds drove Thielbar's next pitch deep to left for his third homer.

Pittsburgh won for the seventh time in nine games since its 1-3 start.

Chicago went 0 for 8 with runners in scoring position and left 11 runners on base. Ian Happ had two of the team's six hits.

Cubs slugger Seiya Suzuki went 1 for 3 with a fourth-inning single in his first game this season. He had been sidelined by a sprained right knee.

Imanaga struck out nine and walked one in six innings. The Japanese left-hander threw 68 of 100 pitches for strikes.

Thielbar (1-1) was lifted after Oneil Cruz's two-out single in the seventh. The 39-year-old lefty pitched 3 2/3 scoreless innings over his first four appearances this year.

Mason Montgomery (1-0) replaced Mlodzinski with runners on first and second in the sixth. He struck out Pete Crow-Armstrong and walked Carson Kelly before fanning pinch-hitter Matt Shaw for the final out of the inning.

The Cubs also left the bases loaded in the fourth when Moisés Ballesteros lined to Reynolds in left.

Isaac Mattson and Gregory Soto each pitched an inning for the Pirates before Dennis Santana handled the ninth for his first save this season.

Pirates rookie Konnor Griffin went 0 for 3 with a strikeout in his first career road game. The 19-year-old shortstop agreed to a nine-year, $140 million contract on Wednesday

Braxton Ashcraft (1-1, 2.25 ERA) starts for Pittsburgh on Saturday, and fellow right-hander Edward Cabrera (1-0, 0.00 ERA) pitches for Chicago.

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