Snow fell hard outside the Huntsman Center on Thursday night, and the No. 9-ranked UCLA Bruins almost fell hard inside it. 

Just like the Runnin’ Utes “almost” hit a couple open 3-pointers with eight and five seconds remaining that could have sent the hard-fought, if not well-played, Pac-12 basketball game into overtime.

But attempts at triples by Gabe Madsen and Lazar Stefanovic rimmed out, and the Bruins escaped with a 63-58 victory and handed Utah its seventh-straight loss.

“Who knows what happens if the ball goes in,” said Stefanovic, rhetorically.

Well, the Huntsman Center might not have a roof, because the announced crowd of 7,785 was ready to explode — both on Madsen’s shot that was slightly more heavily defended, and Stefanovic’s shot, which came after Marco Anthony corralled Madsen’s miss and alertly fed the freshman at the top of the key.

“I am unbelievably proud of our kids. We gave ourselves every opportunity to win. … I thought our guys played with a tremendous spirit.” — Utah basketball coach Craig Smith.

Jules Bernard hit a pair of free throws with 1.5 seconds left to seal it for UCLA, which improved to 4-1 in Pac-12 play, 12-2 overall, and has still only lost to Gonzaga and Oregon this season.

But few of those 12 wins were as difficult as Thursday’s in Salt Lake City.

Nine-point underdogs, Utah led for more than nine minutes and had a 54-51 lead when Both Gach hit a 3-pointer with 5:23 remaining. UCLA, a Final Four team last year that returned all of its top players, simply made more plays in crunch time — and hit its open shots late after missing a ridiculously high number of easy ones before then.

“I am unbelievably proud of our kids,” said Utah coach Craig Smith, whose hard-luck team fell to 1-8 and 8-11. “We gave ourselves every opportunity to win. … I thought our guys played with a tremendous spirit.”

This one was there for the taking. The Utes committed just 11 turnovers — “where we need to be,” Smith said — and made 11 3-pointers. 

They held the country’s 20th highest-scoring team, which was averaging 80.5 points, to 63, the same total the Bruins scored against Gonzaga in a 20-point loss.

The game wasn’t without head-scratching calls, including a foul whistled on Anthony when he was boxing out Johnny Juzang with 1:50 remaining and the Bruins leading just 58-57. Utah had grabbed the rebound, but Juzang went to the line and hit a pair of free throws as boos rained down to push the lead to three. He finished with a game-high 28 points on 9 of 13 shooting.

“Yeah, things didn’t go in our favor,” Smith said, when asked about some of the calls in the final few minutes. “I think that was pretty clear. You just feel for your guys. I understand how it works sometimes. I guess we will watch it on the film, and not just on the replay.”

Gach made one of two free throws with 55 seconds left, and Utah got the ball back and raced up court after UCLA missed an open 3. However, Gach ran over a Bruin while dishing the ball off to Madsen and was assessed an offensive foul, Utah’s 11th turnover.

After Tyger Campbell made one of two free throws with 25 seconds left to push UCLA’s lead back to three, the Utes got a timeout and got fantastic looks to tie it.

“Stef had a really clean look,” Smith lamented.

Smith played 11 guys, substituting freely throughout, and got great contributions off the bench from guys like Jaxon Brenchley and Eli Ballstaedt.

“Eli sparked us in a great way,” Smith said.

Utah looked totally outclassed early, as the Bruins jumped out to a 12-3 lead and looked like they were going to cruise to another blowout win.

Utah scrapped back, thanks to some points from those unlikely sources and a couple 3-pointers, and the scrap was on about 10 minutes into the game.

“Our fans just willed our team tonight,” Smith said.

3 keys to No. 9 UCLA’s gritty 63-58 win over Utah
Runnin’ Ute Dusan Mahorcic’s long and difficult journey from Serbia to Salt Lake City

Before he took questions, Stefanovic thanked the fans as well, saying this team needs that kind of support every game, including Saturday’s scrap against No. 16 USC at the Huntsman Center (4:30 p.m., Pac-12 Network).

The Utes made three of their first four 3-pointers, but missed their first six two-pointers until Brenchley made a three-point play the old-fashioned way. 

That Utah bench outscored UCLA’s bench 17-2 in the first half, 28-3 in the game, as Juzang was forced to carry the other Bruins who all had subpar night. Campbell and Bernard combined to go 4 of 18, for instance.

“When our mindset is right, and we play a full 40 minutes, we can play with anybody,” Stefanovic said. “… In the last two weeks, we got enormously better.”

Utah’s third-leading scorer, David Jenkins Jr., played just 4:48 and did not score. He picked up two fouls in the first half, and spent most of the rest of the game sitting in the middle of the Utah bench with a T-shirt pulled over his jersey.

Smith said Jenkins lost a cap off a tooth at shootaround, but that had nothing to do with his decreased minutes. Rather, the coach just went with the guys who were playing well, which included almost everyone but the UNLV transfer.

“We are in game whatever (19),” Smith said. “You gotta perform.”

And you gotta keep believing in these Runnin’ Utes, the coach said to fans who have seen more than their share of close losses this season.

“We are close,” Smith said. “we are knocking on the door.”