It checked all the boxes of a true March classic: two storied programs with two legendary coaches, a once-in-a-generation superstar, several blue-chip recruits and future NBA draft picks, 16 lead changes and a last-second finish with a Final Four berth on the line.

But in the end, Michigan State had Cassius Winston and a wealth of experience, and Duke did not.

“All these Elite Eight games, I thought Winston was the difference maker,” said Duke Coach Mike Krzyzewski, shaking his head after the Spartans’ 68-67 win in the East Region final at Capital One Arena, which was only sealed in the final seconds after Duke’s cast of one-and-done freshman stars had one final chance to tie the game.

A week earlier, the Blue Devils had survived in the final seconds against UCF. Just two nights earlier, they had done the same after Virginia Tech missed a last-second layup. Now they needed to score to keep their season alive. All eyes of the 20,125 in attendance were glued on Zion Williamson, the otherworldly freshman who had captivated the building all night.

Duke trailed by two when freshman star RJ Barrett, not Williamson, drove and was fouled with five seconds left. Barrett looked nervous. The Spartans veterans around him did not. He clanked the first free throw off the rim and shook his head.

Barrett tried to intentionally miss the second to give Williamson a chance at a tying tip-in. But the ball bounced up off the rim and dropped in, and a few moments later, Winston, who finished with 20 points and 10 assists, broke free in the open court and ran out the clock.

“That’s just my job for this team. It’s a big game. I don’t blame people for being nervous,” Winston said. “It’s my job to keep us composed, keep us afloat.”

He kept the Spartans afloat all evening against wave after wave of attacks from Williamson, who finished with 24 points and 14 rebounds but was often flustered by the Spartans’ swarming defensive effort. And he couldn’t close out in time on defense with 34 seconds left, when Spartans forward Kenny Goins drained a three-pointer to make it 68-66.

“They did everything we expected them to do,” Williamson said of the Spartans.

Michigan State (32-6) played a bruising defensive style in the paint, at every turn double- and triple-teaming Williamson, who committed four of the team’s 10 turnovers in the first 20 minutes. After a 12-0 run gave Duke a nine-point lead with just more than five minutes left before halftime, the Blue Devils came up empty on their final nine possessions of the half. That helped spark a 13-0 run by Michigan State, which scored 15 points off turnovers in the first 20 minutes.

The two teams had never met with a Final Four berth on the line — though Duke had beaten Michigan State in the national semifinal on its way to the championship in 2015, a game that players from both teams often referenced in their meetings with reporters on Saturday. The Spartans were fully aware that Coach Tom Izzo had an 1-11 all-time mark against Krzyzewski, one of the only blemishes on his decorated résumé.

To beat Duke for a second time, Izzo and Michigan State would have to go through Williamson, who scored 10 points in the first 3:19 of the second half. Michigan State shuffled its big men on the star all night. Often, it didn’t matter. He went around and through Spartans big man Nick Ward whenever he had a chance, and he stepped out on Xavier Tillman to hit a three-pointer with 11:41 left to make it 52-48 Duke.

“That kid is worth everything they say about him,” Izzo said.

Winston, who had gotten the best of his matchup with freshman point guard Tre Jones all night, responded with a three-pointer on the next possession. After Barrett committed his seventh turnover trying to pass to Williamson in the post with just more than four minutes remaining, Winston lobbed an alley-oop to Tillman, who finished the three-point play after he was fouled.

“Winston, he took over,” Williamson said.

“He’s the best guard we have played against,” Krzyzewski said.

“He stirs the drink in a lot different ways,” Izzo said.

Krzyzewski leaned back in his chair and put his hands on his head after his team committed its 17th turnover on the next possession, again on an errant pass intended for Williamson in the post. But Barrett gave the Blue Devils a one-point lead on a three-pointer on the Blue Devils next trip, and Williamson made it 66-63 when he muscled his way to the rim for a layup with 1:41 left.

By the final seconds, after Winston got past Jones on the ensuing possession for an alley-oop to Tillman that pulled Michigan State within one, the point guard called the play in the huddle for Goins, who then drained the go-ahead three-pointer over Williamson.

Remarkably, Duke still had a chance to win.

Krzyzewski drew up a play similar to one the team ran in a last-second win over Florida State earlier this season, but Duke finally looked its age in the final moments Sunday.

Afterward, Winston ran into the locker room and another veteran paid his respects by screaming: “Cassius Winston is in the building!”

Winston sat down at his locker, his phone lighting up with countless text messages in the stall behind him.

“I deserve these type of moments,” Winston said Izzo told him afterward. “We’re not done yet.”

— Roman Stubbs

In-game updates

Michigan State wins! With 5.2 seconds left and his team down two points, Duke’s R.J. Barrett was fouled on a shot and went to the line to tie things up. However, he missed the first attempt then made the second even though he appeared to possibly be trying to miss it. Michigan State was then able to inbound the ball on a play that set Cassius Winston free heading upcourt, and he ran out the clock before the Blue Devils could catch up and foul him.

Michigan State wins a thriller over Duke, 68-67.

Duke had been living extremely dangerously, surviving close-in, last-second shot attempts to win its previous two games and reach the Sweet 16. But faced with the latest in a seemingly endless series of tough, well-coached Michigan State squads, the Blue Devils’ luck ran out.

The talented but young Blue Devils almost overcame 17 turnovers, to the Spartans’ seven, in part because of the brilliance of Zion Williamson. However, MSU’s Cassius Winston, the team’s point guard and leader, came through with his own standout performance, scoring 20 points and dishing out 10 assists, with four steals.

Fittingly, Winston had the ball at the end, as he raced away from Duke defenders on a well-designed inbounds play. Given how the Blue Devils made it this far, perhaps it was also fitting that, this time, they were the ones missing a key shot at the end, as R.J. Barrett couldn't connect on the first of a pair of free throws that would have tied the game with 5.2 seconds left.

The Spartans advanced to their eighth Final Four under Coach Tom Izzo, and they are set to square off with Texas Tech in a national semifinal game, with Virginia and Auburn in the other contest. The next stop for Williamson, Barrett and, in all likelihood, fellow Duke freshman Cam Reddish and Tre Jones will be the NBA draft, leaving Coach Mike Krzyzewski to try to reload with another batch of stellar recruits.

Duke ball, 8.4 seconds to go: On an official review after the ball went out of bounds with players scrambling after it, Duke was given possession with 8.4 seconds left. The Blue Devils are down by two, 68-66, and everyone expects the ball to go to Zion Williamson.

Michigan State for threeeeee: Coming out of the timeout, MSU’s Xavier Tillman was able to hit a layup and cut Duke’s lead to one point, at 66-65, then the Spartans got the ball back with a chance to change the lead yet again. Kenny Goins took full advantage with a three-pointer, giving his team a 68-66 lead. Then R.J. Barrett missed a long-range shot as the game — go figure — went to a tense finish.

Duke up late: Duke went on a 7-0 run to take a three-point lead at 66-63 with 1:33 left, forcing Michigan State’s Tom Izzo to call a timeout. As usual, Zion Williamson was in the middle of it for the Blue Devils, with a rebound, a nice assist to R.J. Barrett for a three-pointer and a nifty layup on a hard drive to the basket.

So . . . how about this Elite Eight? Yet another game is going down to the wire with, dare we say, overtime as distinct possibility. Michigan State holds a two-point lead over Duke, 63-61, with 3:32 left, but the Blue Devils have had their share of slim advantages in a back-and-forth second half. (There have been 12 lead changes thus far in the second half.) The prestige these programs brought to the contest, not to mention Zion Williamson all by himself, ensured plenty of eyeballs on this contest, and it has more than lived up to the hype, even with some sloppy play.

Holy McQuaid: Michigan State’s Matt McQuaid put his team back ahead, 58-56, with an eye-opening basket. The 6-4 senior guard faked a shot from the perimeter before driving to the basket and, to avoid a possible block, spinning in midair and hitting an unlikely shot from short distance.

McQuaid even offered a Jordan-esque shrug after his highlight-reel play. He has nine points on 4-of-9 shooting with under eight minutes left.

Zion dominating: With under 11 minutes left and Duke leading Michigan State 52-51, the game’s top scorer is Zion Williamson, with 20 points. He also has the most rebounds with 12 and, in general, is looking every bit the presumed No. 1 overall pick in June’s NBA draft. The Spartans are led by Cassius Winston’s 18 points, eight assists and three steals.

Duck! Most players don’t have to worry about hitting their heads on the backboard while blocking shots. But, as everyone knows, most players aren’t Zion Williamson.

Here comes Zion: Williamson has scored 10 of Duke’s 12 points to start the second half, as the Blue Devils have trimmed their deficit to one with under 16 minutes left. The only blemish during that run was the star freshman missing a pair of free throws, including the front end of a one-and-one, while Michigan State has made just one of five free throws.

It’s been a game of runs: Michigan State answered Duke, which had peeled off a stretch of 12-0 and, going back further, 21-5, with its own 13-0 burst to take a 34-30 lead at halftime. Spartans point guard Cassius Winston, who had struggled to make shots for most of the first half, finally saw some attempts go down, and the Blue Devils didn’t help themselves by being sloppy with the ball.

Winston led his team in first-half scoring with 12 points on 6-of-13 shooting, and he added a game-high five assists. Teammate Xavier Tillman contributed nine points, and he and MSU's Kenny Goins each had six rebounds.

R.J. Barrett had 12 points for Duke on 5-of-9 shooting, while Zion Williamson had seven points, on 3-of-8 shooting, and six rebounds. The Blue Devils had 10 turnovers to the Spartans’ two, while neither team fared well from long range, combining to go 5 of 20 on three-point attempts.

Zion in early foul trouble: Duke’s nine-point lead was its largest since a first-round win over North Dakota State, which was followed by nail-biters against Central Florida and Virginia Tech. However, the Blue Devils’ Zion Williamson picked up his second foul while going for a loose ball with 4:52 left in the first half, and he took a seat on the bench.

Duke starting to flex: With Duke on a 12-0 run, Michigan State Coach Tom Izzo was forced to call a timeout with 5:20 to go in the first half. The Blue Devils erased a 21-18 deficit and led 30-21, thanks in large part to R.J. Barrett and Cam Reddish, who combined for 10 of the points. Michigan State missed four shots during that stretch.

Sloppy Blue Devils: With just under eight minutes to play in the first half, turnovers might have been the difference in Michigan State’s slim, 21-18 lead. The Spartans committed just two, while the Blue Devils had five, helping MSU to an advantage in overall shots, 24-19.

A cold start from three-point land: It took almost 10 minutes of game time, but Duke’s R.J. Barrett finally hit the game’s first three-point shot. His team had been 0 for 5 before then from long range, while Michigan State was also 0 for 5. The Spartans’ Matt McQuaid quickly followed up by breaking the ice from three for his team.

Michigan State winning the early-game dunk contest: In getting out to an early lead over Duke, Michigan State threw down a pair of notable dunks. The first two points came on one as the Spartans’ Cassius Winston grabbed a loose ball and got it ahead to Kenny Goins, then, a few minutes later, Matt McQuaid blew past Duke’s Javin DeLaurier for a jam.

Of course, Blue Devils star Zion Williamson was not going to be denied his share of dunks, including one during pregame warm-ups that was ridiculously casual for its high degree of difficulty and this one midway through the first half.

Reddish will play: Just before the game started, CBS’s Tracy Wolfson reported that Duke’s Cam Reddish was available to play but would not start. One of the Blue Devils’ star freshmen, along with Zion Williamson, R.J. Barrett and Tre Jones, Reddish missed his team’s previous game, a tight win over Virginia Tech, with a knee injury.

Sure enough, Reddish was not on the court for the opening tip, but Duke Coach Mike Krzyzewski wasted little time in testing the forward’s knee, inserting him into the game after only two minutes had passed.

How they got here: Duke (32-5) finished the regular season 26-5. Three of those losses came with star freshman Zion Williamson out with a knee injury; the Blue Devils are 6-0 since he returned, including a win in the ACC tournament final. Duke won handily in its first round game against No. 16 North Dakota State, 85-62, but has had back-to-back close contests since: a 77-76 fight vs. No. 9 seed Central Florida in the second round and a 75-73 thriller vs. No. 4 seed Virginia Tech.

Michigan State (31-6) earned a share of the Big Ten regular season title with fellow Elite Eight team Purdue before winning the conference tournament. The Spartans have hardly been tested in the NCAA tournament, winning convincingly against No. 15 seed Bradley (76-65), No. 10 seed Minnesota (70-50) and No. 3 seed LSU (80-63).

— Des Bieler

Elite Eight schedule and results

Sunday’s games

Kansas City (Midwest Region)

Washington (East Region)

No. 2 Michigan State 68, No. 1 Duke 67

Saturday’s results

Anaheim (West Region)

Louisville (South Region)

Read more

These point guards don’t know each other, and their paths to this moment have never crossed. Yet both Michigan State’s Winston and Duke’s Jones see similar traits in one another; both are fiery competitors who facilitate wildly talented rosters, and both have had to develop in the shadows.

To prepare for his next assignment, Xavier Tillman may want to walk down to Constitution Avenue and practice stepping in front of those double-decker tour buses. Don’t walk up the steps to the Lincoln Memorial or around the Tidal Basin to see Jefferson, because the towering monuments there might only remind him of what’s ahead: Zion Williamson.

The Blue Devils used words like “instincts” and “smart” repeatedly when describing the freshman star’s ability to affect games not just with highlight dunks, but with more subtle plays.

The Duke coach, in his 39th season, is winning with the kind of players he once thought he’d never recruit.

Wolfson, who will be on the sideline for Duke-Michigan State, keeps finding herself in the spotlight.

Izzo had the Spartans primed for the Sweet 16 matchup, and it paid off with a chance to advance to their eighth Final Four under the coach.

“Being at that camp that made me have a sense of belonging and a sense of yearning to belong more,” says Josh Fried, who played and then coached in Coach K’s summer camps.

He got 49 straight picks correct, but took a hard tumble Thursday night.