91³Ô¹ÏÍø

Watch CBS News

Phillies manager Rob Thomson says Andrew Painter will take the mound in minor league game

For the first time in three years, Andrew Painter will take the mound in a minor league baseball game. 

Phillies manager Rob Thomson announced Painter will start for Low-A Clearwater on Friday, the first step toward his journey to the major leagues. That quest was halted two years ago when Painter injured his elbow in spring training and received Tommy John surgery in July of the 2023 season. 

"He came through fine," Thomson said prior to Sunday's game against the Dodgers. "Health is the biggest concern. He gets through it [the start] and he's throwing strikes. His stuff is there, so that's what I'm looking for."

The number of innings or pitch count Painter will throw was not confirmed by Thomson. Painter will start once a week as he continues the trek to the majors. 

Painter was sidelined throughout the 2024 season and didn't throw to live hitters again until the Arizona Fall League in his recovery from Tommy John surgery. He doesn't turn 22 until April 10. 

When Painter last pitched in a minor league game, it was in Double-A Reading at the end of the 2022 season. He threw five starts for the Fightin' Phils that season, striking out 37 while walking two and holding opponents to a 2.54 ERA in 28.1 innings. 

In that 2022 season across three levels, Painter started 26 games and had a 1.48 ERA in 109.2 innings. At the age of 19, he struck out 167 and walked 25. 

The hype-train was at an all-time high for Painter back then. The engine is still running as the Phillies are anticipating Painter to be with the big club this summer. 

"We're going to be conservative," Thomson said. "And make sure we take care of him."

Bohm gets a day off 

The Phillies are giving third baseman Alec Bohm a day off for Sunday's series finale against the Dodgers, opting to play Edmundo Sosa at third base. Max Kepler will bat cleanup in Bohm's place while Sosa will bat seventh. Rafael Marchan will catch in place of J.T. Realmuto, who has a scheduled day off with a day game after a twilight game. 

Thomson said Bohm wasn't benched for Sosa after seeing five pitches in four at-bats in Saturday's loss (Bohm went 0-for-4 with an RBI groundout). The plan was for Bohm to have a scheduled day off after playing in four consecutive games, and playing every game in the young season. 

"He's hitting balls hard," Thomson said. "He hasn't had a whole lot of luck, and has played great defense." 

Bohm and the Phillies tended to swing early in Saturday's loss, including a three-pitch ninth inning that resulted in a save for Dodgers closer Tanner Scott -- the first three-pitch save in MLB since 2003. 

Thomson is okay with the approach if the opposing pitcher is throwing strikes. The Phillies still have the lowest chase rate in MLB at 25.0%.

"I want them to see more if they're getting a good pitch to hit," Thomson said. "If he's not getting a good pitch to hit, that might be the only one you get. If they are swinging at pitches they can handle, I'm good with it. 

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