MIAMI GARDENS, Fla. — Their storybook ending was almost complete, the final chapter all but written.
The San Francisco 49ers seemed poised to cap their wildly unexpected and stunningly impressive season with the ultimate prize: hoisting the Lombardi Trophy.
Their head coach Kyle Shanahan appeared to be on the verge of erasing the ghosts of his greatest postseason fail.
And their quarterback, Jimmy Garoppolo, stood on the precipice of shattering the narrative that he is the weak link on a team stacked with playmakers.
Everything was going according to plan.
The lead had been theirs, as was the momentum. And then…
Then the unthinkable happened.
Or, perhaps, the most predictable.
At a time when he needed to take over, Garoppolo wilted when it mattered most.
So did his teammates.
And so did his head coach.
The team that had bullied opponents with a punishing defensive front, and seemingly scored at will with an assortment of offensive options, collapsed at the worst possible time against the worst possible opponent.
“It's pretty brutal,” said 49ers tight end George Kittle. “It just honestly sucks. It’s not really anything you can wrap your head around. I wish I had another half to play, but I don’t. We didn’t take advantage of our opportunities. I wish we had another page in the book.”
Asked to describe his feelings, defensive end Nick Bosa curtly whispered: “Pissed.”
The Chiefs quarterback became the youngest player to win the NFL MVP award and a Super Bowl title. Meanwhile, Garoppolo is left to grapple with the growing belief that he’s incapable of elevating his team consistently in big moments.
In a pivotal fourth quarter, he completed only three of 11 passes for 36 yards and an interception. He also complicated matters by taking a fourth-down sack at his own 42 with the 49ers trailing 24-20.
There was Garoppolo, being spun around like a top by Chiefs defensive end Frank Clark, and carelessly lobbing the ball into the air in a final act of desperation.
That came one play after Garoppolo missed Emmanuel Sanders, who had beaten the coverage deep, on what would have been the go-ahead score.
But as he sat at a postgame podium, dressed in a suit while he addressed reporters, Garoppolo declined to say he felt like he had let his team down: "I think you have to give the Chiefs credit. They are a good football team. It just wasn't our night."
Good quarterbacks can get their teams to the postseason.
But great quarterbacks have the ability to carry their teammates when the game is on the line.
And Garoppolo failed on that front.
The same can be said about his head coach.
In the lead-up to Super Bowl LIV, Shanahan insisted his last Super Bowl appearance — as offensive coordinator for the Atlanta Falcons in 2017 — was the furthest thing from his mind. But as the 49ers’ 20-10 lead dwindled to 20-17 before disappearing altogether, memories of “28-3” came rushing back.
The Chiefs’ resurgence didn’t top the drama of the Patriots’ comeback victory over Shanahan’s Falcons three years ago. But it further gave credence to the idea that he isn’t clutch on the biggest stage.
He and his players will have all offseason to lament their mistakes. But the second-guessing of Shanahan has already begun.
At the end of the first half, he chose not to use any of his three timeouts after his defense had forced a Chiefs punt near midfield. Doing so would have stopped the clock with 1:53 left in the second quarter, but the Chiefs were allowed to punt at 1:08. The 49ers eventually took a knee to end the first half instead of possibly kicking a field goal.
But it was his questionable play-calling in the fourth quarter — and his decision to abandon the run when he needed to bleed the clock — that will be debated.
“We were grateful they got out of the run and started to throw the ball,” Chiefs safety Tyrann Mathieu said in a postgame TV interview.
Garoppolo stressed there are still positives to take away from the 49ers’ season. A year ago, they finished the regular season 4-12. A year ago, he was also recovering from ACL surgery. And on Sunday, he had a chance to add to his collection of Super Bowl rings.
“Those are the moments you dream of,” he said of falling short of the perfect ending. “We got rolling on the right note and just couldn’t finish it off. It is tough, but it has been a hell of a year with these guys. Everything we’ve been through from the very start, it is an incredible story."
The questions remain about Garoppolo’s ability to do what his mentor Tom Brady made look so easy: rise to the occasion.
The 49ers’ defense sacked Mahomes four times — tying the quarterback’s season-high from Week 4 against the Colts. The unit also picked him off twice and held Mahomes to a 78.1 rating.
And that still wasn’t enough to seal a San Francisco victory.
“It’s tough,” said Garoppolo, who earned two Super Bowl rings as Brady’s backup in New England. “I mean, I’ve never had this feeling before, so kind of an unreal feeling.”
Several players offered clipped, irritated responses in the wake of their first defeat since Dec. 15. But Garoppolo maintained that this team is built to bounce back.
“You could see it in guys’ eyes in there. It means something to guys,” he said. “That means you’ve got guys that care about what they’re doing, guys who care about each other. We’re a young team and we’ve got a very bright future. We’ve got to take this in stride and remember this feeling and let it fuel us in the offseason."
Garoppolo is right.
It was a “hell of a year” for the 49ers.
And that’s what will make Sunday’s choke job so unbearable for him, his teammates and their coaches in the weeks to come.
More Super Bowl LIV coverage from Yahoo Sports: