91³Ô¹ÏÍø

Watch CBS News

Braves-Angels game erupts as López, Soler exchange punches, get ejected

pitcher Reynaldo López and Los Angeles Angels designated hitter Jorge Soler were ejected after getting into a brawl Tuesday night.

Soler homered off López in the first inning, then was hit by a 96 mph fastball from the right-hander his next time up. In the fifth, Soler charged the mound after López threw a high-and-inside wild pitch that tipped off catcher Jonah Heim's mitt.

At first, López held up his hands as the two glared at each other before both started throwing punches.

"I asked him if everything was OK and the answer he gave me, I didn't like it," Soler said through a translator, according to MLB.com. "That's why I went out there."

The benches and bullpens emptied as players from both teams tried to separate the two. Atlanta manager Walt Weiss was among those who tackled Soler, the 2021 World Series MVP with the Braves.

"I love Soler. We were teammates here," Weiss said. "But that's a big man, and so I just felt I've gotta get him off his feet because he's gonna hurt somebody. And so that was my instinct, just to get in there and get Jorge off his feet, yeah, because he was on a warpath."

MLB: APR 07 Braves at Angels
ANAHEIM, CA - APRIL 07: Los Angeles Angels designated hitter Jorge Soler (12) swings a punch at Atlanta Braves pitcher Reynaldo Lopez (40) on the mound as home plate umpire Edwin Moscoso trails the play during the MLB game between the Atlanta Braves and the Los Angeles Angels on April 7, 2026 at Angel Stadium in Anaheim, CA. Brian Rothmuller/Icon Sportswire via Getty Images

López was still holding the baseball when he landed a punch on Soler's batting helmet.

The two were teammates in Atlanta during the second half of the 2024 season.

"It's just a shame, the situation and how things unfolded," López said through a translator, according to MLB.com. "On my part, there was never any intent to hit him at any point. So, again, it's just a shame."

Atlanta led 4-2 when the fight occurred and went on to a 7-2 victory.

Soler's two-run shot in the first made him 14 for 23 with five homers and three doubles against López.

"Obviously, I have good numbers against him," Soler said. "After the home run and getting hit by a pitch after that, and then he missed way too high and close to my head. At this level, you can't miss like that."

Weiss understood why Soler was mad.

"I know it didn't look good because of Soler's numbers against Lópey, and he hit a homer, he hit him. It didn't look good," Weiss said. "Lópey's not throwing at him. I don't allow our pitchers to throw at people just because they can't get 'em out. Our job is to get 'em out. But I understand why Soler got angry. And he's a really mild-mannered guy. So, I think the switch flipped for him.

"There was no intent there. I just think that Lópey's just overthrowing, because he's had a hard time getting him out. But he's certainly not trying to hit him," Weiss added.

López pitched 4 2/3 innings, allowing three hits with seven strikeouts and two walks.

"Obviously, guy's got good numbers off López, and hits a homer his first at-bat. Gets drilled up high in the wrist his second at-bat and then third one takes a good swing and then throws the next one head-high. It wasn't over his head but it was head-high coming in," Angels manager Kurt Suzuki said.

"I don't blame Jorge one bit. He went out there and words were exchanged and Jorge went out," Suzuki added. "You get thrown at your head, you have a family, your career, you know, it's dangerous. I know it's part of the game. I know it happens."

The Angels won 6-2 on Monday in the opener of the three-game series. Tuesday night's game was more eventful, to say the least.

"It gets your juices flowing a little bit, on both teams I'm sure," Weiss said. "So, as long as nobody gets hurt, it's kind of a good time. But as long as nobody gets hurt. But yeah, I was proud of our guys the way we handled everything tonight."

___

AP MLB: https://apnews.com/mlb

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