91³Ô¹ÏÍø

Watch CBS News

Phillies' prized prospect Andrew Painter to make MLB debut after "a long road" following Tommy John surgery

Andrew Painter threw spring training pitches clocked at 100 mph, underwent Tommy John surgery and spent an unexpected season rehabbing in the minors.

The 22-year-old Painter — considered to have one of the top arms in any level of baseball — is finally ready for his Phillies debut.

Painter will make his first career big league start Tuesday night against Washington.

"The preparation, everything else is going to be the same," Painter said this week. "I'm going to go on the field and treat it like another start."

Painter was the 13th overall pick in the 2021 amateur draft and signed for a $3.9 million bonus. He sprinted through Philadelphia's system in 2022, going 6-2 with a 1.48 ERA in 26 appearances spread across two Class A teams and Double-A Reading.

He hurt his elbow during spring training in 2023 and had Tommy John surgery later that year.

The 6-foot-7 right-hander emerged as the top candidate to win the Phillies' fifth starter job as he attempted to crack the rotation before his 20th birthday. Instead, the injury set him back at least two seasons, and he went 5-8 with a 5.26 ERA during two minor league stops last season.

The Phillies were never concerned with his record. They wanted to see how his elbow and arm held up over a career-best 118 innings pitched.

He's been deemed good to go and joins a stout rotation that this season will include Zack Wheeler, Aaron Nola, Cristopher Sánchez and Jesús Luzardo.

"It's definitely been a long road," Painter said. "Grateful for it. Grateful for all the failure. Last year was a tough one. But I think I learned a lot from it."

The two-time reigning NL East champion Phillies already need Painter to step in and make a solid start following a 1-3 beginning that has them in last place.

Considered the organization's top pitching prospect since Cole Hamels, Painter entered the season  among all prospects in baseball. Painter gave up seven hits and struck out eight in 11 2/3 innings this year in spring training.

Painter said he would try to keep calm while pitching in front of about 40 friends and family in his ticket group.

"Not super anxious," he said. "Just trying to lean into the everyday process and just keep preparation, everything the same when I show up to the ballpark and let that stuff take care of itself."

Painter took a knee before he ever threw a regular-season pitch. He posted proposal photos on Instagram in March with his girlfriend, Shelby.

What's more nerve-wracking, proposing or taking the mound?

"I'm not sure," Painter said with a laugh. "We'll revisit that."

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