91³Ô¹ÏÍø

Watch CBS News

Philadelphia Phillies, Jesús Luzardo agree to 5-year, $135 million contract extension

Jesús Luzardo is staying in Philadelphia for the long term.

The Phillies and the left-handed starting pitcher agreed to a five-year contract extension with a team option for a sixth season, president of baseball operations Dave Dombrowski announced Tuesday.

Luzardo's extension is , according to ESPN's Jeff Passan, who was first to report the contract Monday.

"The organization is extremely thrilled to have Jesús with us for the next six years, six-plus years," Dombrowski said in a press conference. "It's a big day for us to sign one of the best pitchers in Major League Baseball. … We feel like he gives us one of the best starting rotations in Major League Baseball."

The extension, which begins in 2027, gives Luzardo a $27 million average annual value. He will become one of the highest-paid lefties in the game, with his AAV matching Chris Sale's recent one-year, $27 million extension with the Braves.

The highest paid lefties in MLB by AAV are Framber Valdez ($38.3 million, Tigers), Blake Snell ($36.4 million, Dodgers), Tarik Skubal ($32 million, Tigers), Garrett Crochet ($28.3 million, Red Sox), Max Fried ($27.25 million, Yankees), and Carlos Rodón of the Yankees, Sale and Luzardo at $27 million.

Luzardo would have been a free agent after this season. He said his decision to forgo free agency was a result of the combination of the Phillies' coaching staff, the organization's expectation to win, the fans and how his family adapted to the city.

"Free agency, I don't like to play the what-ifs," Luzardo said. "I think that this came at the perfect time for me. … A match made in heaven."

Dombrowski said Luzardo would have slotted in "very highly" among the best starters available had he reached free agency.

"We didn't really want to test that out ourselves," Dombrowski said. "We prefer to have it done at this point. If he pitches the same way this year as he did last year, and we don't see any reason why he will not, he would be one of the top guys."

Luzardo, 28, set career highs in innings (183 2/3) and strikeouts (216) with a 15-7 record, 3.92 ERA and 3.9 bWAR in his first season with the Phillies in 2025. He finished seventh in the National League Cy Young voting. The southpaw started the season striking out 77 batters with a 2.15 ERA in his first 11 starts.

In the playoffs, Luzardo made one start and a relief appearance in the Phillies' National League Division Series loss to the eventual World Series champions Los Angeles Dodgers. In his lone start, Luzardo struck out five and allowed two runs on three hits in six innings. He came out of the bullpen in the NLDS' deciding Game 4, striking out three in 1 2/3 innings.

"I always want to be the best," Luzardo said. "For me, for this organization, for everyone involved, for the guys in the clubhouse, every five days I want to go out and be as good as I can and be as great as I can and give us a chance to win. Whatever that means, who knows. I'll tell you throughout these next five, six years, the only thing I expect is to be great every time out, and that's what I work for."

The Phils acquired Luzardo from the Miami Marlins in December 2024.

Philadelphia now has starting pitchers Cristopher Sánchez, Luzardo and Aaron Nola signed through at least 2030 and prospect Andrew Painter under team control.

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