91³Ô¹ÏÍø

Watch CBS News

Devers, Adames hit back-to-back homers as red-hot Giants deck Cards 8-2

Rafael Devers and Willy Adames hit back-to-back home runs in the first inning, and the streaking San Francisco Giants matched their season best with 18 hits Friday night during an 8-2 victory over the St. Louis Cardinals.

San Francisco, which has won five straight and 11 of 12, remained four games behind the New York Mets for the final National League wild card.

Carson Seymour (1-2), making his second career start, earned his first major league win. He didn't give up a hit through his first four innings as the Giants built a 6-0 lead against Michael McGreevy (6-3).

Seymour ended up yielding one run and two hits in five innings, with one walk and two strikeouts.

Jimmy Crooks led off the fifth with a sharp grounder for a single, then scored on an RBI single by Victor Scott II for St. Louis' first run. Iván Herrera added a solo homer in the eighth.

Jung Hoo Lee tied his career high with four hits, including an RBI triple, and scored twice for San Francisco. Patrick Bailey had three singles, and every Giants starter got at least one hit.

Tristan Beck pitched the final three innings for his third big league save and first this season.

Lee's single started a four-run fourth as McGreevy lost for the first time in seven starts. He gave up six runs and nine hits in four innings.

After a fielding blunder on a popup to shallow center field allowed Matt Chapman to reach in the seventh, Lee followed with his 11th triple and then scored on Casey Schmitt's single to make it 8-1.

Key moment

Three pitches after Devers hit a 416-foot drive into the right-field bleachers, Adames sent a 401-foot homer just over the wall in left-center.

Key stat

The Giants equaled their hit total from an Aug. 29 win against Baltimore.

Up next

In his 20th season, Giants RHP Justin Verlander (3-10, 4.29 ERA) tries to win at Busch Stadium for the first time Saturday against St. Louis RHP Andre Pallante (6-13, 5.38). Verlander's only previous starts at Busch came during the 2006 World Series and the 2009 regular season.

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