91³Ô¹ÏÍø

Watch CBS News

Guerrero and Bichette homer as the Blue Jays beat the White Sox 7-1

Vladimir Guerrero Jr. and Bo Bichette homered, helping José Berríos and the Toronto Blue Jays beat the lowly Chicago White Sox 7-1 on Saturday.

Berríos surrendered an unearned run and two hits in a season-high 7 2/3 innings. The right-hander struck out five and walked three in his first win since May 29.

The last-place White Sox finished with two hits in their ninth loss in 10 games. They dropped to 8-32 on the road this year.

Davis Schneider had two hits and three RBIs as Toronto bounced back nicely from Friday's 7-1 loss in the series opener.

The crowd of 41,488 rose for a standing ovation when Berríos (3-3) exited after walking Ryan Noda. The lengthy start was a welcome one for a Toronto bullpen that used six relievers to cover seven innings Friday.

Ahead 1-0 on Bichette's game-opening homer, Toronto used five singles to add three more runs in the second inning. George Springer scored on a throwing error by right fielder Austin Slater, and Nathan Lukes and Schneider each had run-scoring hits.

Chicago's Miguel Vargas tripled and scored on Guerrero's throwing error in the top of the sixth, but the Blue Jays slugger restored Toronto's four-run cushion with a two-out homer in the seventh, his 10th.

White Sox right-hander Aaron Civale (1-4) allowed five runs and nine hits in seven innings.

Bichette went deep on Civale's first pitch for his third leadoff homer this season and the sixth of his career.

Bichette leads the Blue Jays with 11 home runs, including three in the past five games.

Right-hander Chris Bassitt (2-3, 3.81 ERA) is expected to start for the Blue Jays in Sunday's series finale against White Sox right-hander Adrian Houser (2-2, 2.15 ERA).

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