91³Ô¹ÏÍø

Watch CBS News

Michigan State basketball plays first March Madness 2026 game today. Here's what to know.

The Michigan State Spartans men's basketball team makes its 28th straight appearance on Thursday when it takes on the North Dakota State Bison in a first-round matchup in the East region.   

The Spartans (25-7) earned the No. 3 seed and will face the No. 14 seed Bison (27-7) in Buffalo, New York.  

MSU's streak of 28 consecutive tournament appearances is tied with Kansas for the all-time record. 

North Dakota State won both the Summit League regular season and tournament titles. The Bison are making their fifth Division I tournament appearance and first since 2019. 

What time does Michigan State play?

Tip-off for Thursday's first-round game from KeyBank Center in Buffalo, New York, tips off at 4:05 p.m. ET. 

How to watch Michigan State's first March Madness game

You can watch Thursday's game at 4:05 p.m. ET on TNT.

How far has Michigan State made it in March Madness?

Michigan State is a two-time national champion. It won its first title in 1979 under legendary coach Jud Heathcote and a Magic Johnson-led team. The Spartans won it all again in 2000, with Mateen Cleaves and Morris Peterson leading the way in a win over Florida. 

MSU also finished as a national runner-up in 2009, losing to North Carolina in a championship game played at Ford Field in Detroit.

The Spartans have made 39 NCAA Tournament appearances and rank sixth in Final Four appearances with 10 (1957, 1979, 1999, 2000, 2001, 2005, 2009, 2010, 2015, 2019). Michigan State has reached the Sweet 16 on 22 occasions, including in 2025. 

Michigan State has posted a 77-37 record in the NCAA Tournament. The Spartans have advanced past either the First Four or First Round each of the last four years. 

Is Michigan State or North Dakota State predicted to win?

DraftKings projects Michigan State as a 16.5-point favorite. The over/under is set at 142.5.

This is the first all-time meeting between the two schools.

Michigan State and North Dakota State players to watch

Spartan sophomore guard Jeremy Fears Jr. leads all scorers with 15.7 points and 9.2 assists per game. Senior forward Jaxon Kohler averages nearly a double-double with 12.7 points and nine rebounds a game. 

Junior guard Damari Wheeler-Thomas leads the Bison with 14. ppg. Wheeler-Thomas scored 19 points while shooting 50% from the field in NDSU's win over North Dakota in the Summit League championship game. Fellow junior guard Trevian Carson is averaging 12 points per contest. 

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