91³Ô¹ÏÍø

Watch CBS News

Tornadoes hit Indiana, Illinois as destructive storms blast through parts of Midwest

Destructive storms blasting through parts of the Midwest spawned tornadoes that hit Indiana and Illinois, as near-hurricane force winds swept parts of the region.

A violent tornado ripped through southeastern Illinois on Thursday, shredding homes, overturning cars and leaving a trail of destruction that stretched at least six miles long. At least a dozen buildings were destroyed.

Powerful wind mangled mobile homes and flipped them upside down. One woman was trapped inside until rescue crews could reach her.

That same twister then barreled across the Indiana state line.  

Another powerful tornado ripped through Bloomington, Indiana, on Thursday, as severe thunderstorms and 70 mile per hour wind gusts hammered the city that's home to around 80,000 people. It toppled trees and power lines, peeled roofs off of buildings and destroyed a bank in a normally-busy shopping district.

Parts of the bank's roof caved in and the facade was shredded. 

Local Weather U.S.
Workers secure the Fifth Third Bank after it was damaged by a tornado on Feb. 19, 2026, in Bloomington, Indiana.  Jeremy Hogan/Getty Images

The twisters were part of a massive winter weather system that sprawled 1,000 miles across the country from Ohio to Nebraska, where it brought nearly a foot of snow and whiteout conditions to Omaha. 

The Nebraska State Patrol two people died after a vehicle lost control in wintry conditions. Troopers responded to over 150 weather-related incidents, including 45 crashes.

On Friday, a wind advisory from the National Weather Service was in effect for parts of Indiana, Illinois, Michigan and Ohio. 

"Gusty winds will blow around unsecured objects," the weather service warned. "Tree limbs could be blown down and a few power outages may result."

The said westerly winds will frequently gust up to 45 mph across, with the strongest gusts hitting in the morning hours.

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