91³Ô¹ÏÍø

Watch CBS News

Kelly homers as Cubs hand Mets their 10th straight loss with a 4-2 victory

Pinch-hitter Carson Kelly connected for a tiebreaking three-run homer in the sixth inning, and the Chicago Cubs handed the New York Mets their 10th consecutive loss with a 4-2 victory on Saturday.

Ian Happ also homered for Chicago in its fourth consecutive win. Jameson Taillon (1-1) pitched six crisp innings.

It's the longest losing streak for New York since it dropped 11 in a row from Aug. 28 to Sept. 8 in 2004. It has been outscored 60-18 during the slide.

The game was tied at 1 when Mets right-hander Freddy Peralta (1-2) issued two consecutive walks with two down in the sixth. Peralta then was replaced by left-hander Brooks Raley, and Kelly was sent up to hit for Moisés Ballesteros, a rookie who bats from the left side.

Kelly drove Raley's first pitch into the bleachers in left-center for his second homer of the season, sending a charge through the crowd of 36,189. It was Kelly's second career pinch-hit drive.

It also was the first homer allowed by Raley since Aug. 13, 2023, stopping a streak of 53 2/3 innings.

Mark Vientos homered for New York. Francisco Lindor and Luis Robert Jr. each had two hits.

The Mets scored an unearned run on second baseman Nico Hoerner's throwing error in the eighth, but Ben Brown escaped the jam when Vientos grounded out.

Caleb Thielbar handled the ninth for his first save of the season. Daniel Palencia, Chicago's usual closer, was placed on the 15-day injured list on Friday with a left oblique strain.

New York jumped in front on Vientos' 434-foot drive to left-center in the second. He went 1 for 25 with eight strikeouts and no walks in his previous eight games.

Happ responded with a leadoff shot in the bottom half, a 431-foot drive to center. Happ also went deep during Chicago's 12-4 victory in the series opener.

Up next

Tobias Myers (0-1, 3.46 ERA) starts the series finale for New York, and fellow right-hander Javier Assad (1-1, 8.10 ERA) pitches for Chicago on Sunday. David Peterson had been slated to start for the Mets, and the team did not immediately announce a reason for the change.

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