91³Ô¹ÏÍø

Watch CBS News

Carson Kelly, Colin Rea help lead Chicago Cubs to comeback win over Philadelphia Phillies

Carson Kelly hit a three-run homer, Colin Rea pitched six strong innings and the Chicago Cubs rallied to beat the Philadelphia Phillies 10-4 on Tuesday night.

Nico Hoerner and Alex Bregman each had three RBIs for the Cubs.

Edmundo Sosa homered for the Phillies.

Chicago broke a 3-all tie with four runs in the sixth inning off Tim Mayza (0-1). Hoerner and Bregman each had two-run singles in the inning and the Cubs were aided by a Phillies miscue.

After Mayza put runners on first and second with one out with a walk and hit batter, Dansby Swanson hit a hard grounder back to the pitcher that was a potential double play. Mayza threw slightly off target to second base, and Bryson Stott could not make the catch. Stott was charged with a fielding error on the play. Instead of runners on first and second with two outs, or an inning-ending double play, Chicago had the bases loaded with one out.

Hoerner made Philadelphia pay with a liner to center. After Brad Keller replaced Mayza, Bregman knocked in two more runs.

Rea (2-0) followed opener Riley Martin, who worked a 1-2-3 first. He surrendered Sosa's three-run homer to left-center that gave the Phillies a 3-0 lead before retiring 16 of the next 17 batters, including 10 in a row to close his outing. Rea struck out five and walked none.

Philadelphia got a run back in the eighth and threatened for more with the bases loaded and two outs, but Caleb Thielbar struck out pinch-hitter Alec Bohm to end the inning. Kyle Schwarber extended his on-base streak to 15 games with a one-out single in the inning.

Kelly made it a six-run advantage with his first homer of the season in the ninth off Tanner Banks.

Phillies starter Aaron Nola lasted five innings, allowing three runs on eight hits.

Cubs LHP Shota Imanaga (0-1, 2.81) opposes Phillies LHP Jesús Luzardo (1-2, 6.23) on Wednesday night in the rubber game of the three-game series.

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