91³Ô¹ÏÍø

Watch CBS News

Marlins rally to beat Yankees 13-12

Xavier Edwards hit a tying two-run single in the ninth, then raced home with the winning run on Agustín Ramírez's chopper in front of the plate as the Marlins rallied to beat the New York Yankees 13-12 in front of an electric Miami crowd on Friday night.

Edwards' hit came off new Yankees reliever Camilo Doval (4-3) and he beat the attempted tag at home on Ramírez's fielder's choice grounder.

Giancarlo Stanton and Trent Grisham hit three-run homers that helped the Yankees build a 9-4 lead before the Marlins stunned New York with a six-run seventh.

Kyle Stowers hit a grand slam off newly acquired Yankees reliever Jake Bird, and Javier Sanoja hit a solo shot off David Bednar, another new acquisition. Ramírez singled twice, including a leadoff base hit and a go-ahead single that put the Marlins up 10-9.

Anthony Volpe then tied it at 10 with a leadoff home run in the eighth, and Bednar pitched a scoreless inning before McMahon's single against Anthony Bender (3-5) in the ninth. Volpe, who had four hits, gave the Yankees a two-run cushion with a run-scoring double.

Yankees starter Carlos Rodón was lifted in the fifth after issuing his fifth walk. The left-hander shook his head as he left the mound, with his outing ending after striking out nine and allowing two walks and four runs.

Rodón held the Marlins without a hit before Eric Wagaman's leadoff single in the fifth. Sanoja launched an opposite field two-run shot off Rodón, and pinch-hitter Liam Hicks drove in two with a single off Jonathan Loáisiga that made it 6-4.

Jasson Dominguez also had three hits. Camilo Doval earned his 16th save

Junk went five innings and allowed six runs and six hits while striking out four.

The announced crowd at loanDepot park was a season-high 32,299.

Key moment

José Caballero, pinch-running for Ben Rice, scored on McMahon's go-ahead single after stealing second.

Key stat

Marlins pitchers had thrown 22 scoreless innings before Stanton's homer.

Up next

Yankees RHP Cam Schlittler (1-1, 4.91) goes against Marlins RHP Eury Pérez (3-3, 3.07) on Saturday.

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