91³Ô¹ÏÍø

Watch CBS News

Paul Skenes pitches 6 scoreless innings as Pirates sweep Dodgers

Paul Skenes pitched six scoreless innings and earned his 10th win of the season as the Pittsburgh Pirates beat the NL West-leading Los Angeles Dodgers 5-3 on Thursday night to complete a three-game series sweep.

Skenes (10-9) allowed two hits, struck out eight, and walked one. The right-hander finally got his record above .500 for the first time this season and lowered his ERA to a major league-best 1.98.

Skenes, last season's NL Rookie of the Year who was 4-8 this season for the last-place Pirates, has won six of his last seven decisions.

The Dodgers were held to five hits and had their division lead cut to two games over idle San Diego.

Mookie Betts broke up the Pirates' shutout bid with a leadoff home run in the ninth inning, and RBI singles by Pedro Pages and Miguel Rojas cut the deficit to 5-3. However, Colin Holderman struck out Ben Rortvedt to end it for his first save of the season.

Dodgers starter Blake Snell (3-4) was tagged for five runs and nine hits in five innings.

Tommy Pham's single in the third inning opened the scoring, and Nick Yorke's two-run double highlighted a four-run fifth that pushed the Pirates' lead to 5-0.

The Dodgers lost for the fifth time in six games, and the Prates won for the 12th time in 16 games.

The Dodgers had runners on first and second in a scoreless game in the second, but Skenes coaxed Betts into hitting into an inning-ending force play.

Holderman, who entered the game with a 7.89 ERA, finished with 2/3 of a scoreless inning.

The Dodgers open a series at Baltimore on Friday with RHP Tyler Glasnow (1-3, 3.41 ERA) facing Orioles RHP Dean Kremer (9-10, 4.52).

The Pirates begin a home series with NL Central-leading Milwaukee on Friday with RHP Johan Oviedo (2-0, 3.60) starting against RHP Quinn Priester (11-2, 3.28).

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