CLEVELAND -- For more than 40 minutes, the Cavaliers were lifeless and lost.
Kyrie Irving snapped his teammates out of their funk just in time.
Irving scored 20 points, 11 in the last 4:21, and Cleveland's All-Star guard made all the big plays down the stretch, rallying the Cavs to a 104-101 victory over the Utah Jazz on Wednesday night.
Cleveland trailed 100-92 with less than three minutes left before Irving, the soon-to-be 21-year-old with a maturing game, took over. He scored eight points, grabbed two rebounds, made a steal and had the assist on Wayne Ellington's go-ahead dunk with 56 seconds left as Cleveland stormed back and stunned the Jazz.
"Merry Christmas to us," Cavs coach Byron Scott said. "We got lucky. That was a gift, basically."
Irving added 10 assists in his second game back after missing three with a hyperextended knee. Tristan Thompson had 16 points and 12 rebounds for the Cavs, who trailed by 12 in the fourth and appeared to be going through the motions for more than three quarters.
"The last 15 minutes is when we started playing," Scott said. "With 15 minutes left, I told them, 'Right now, you're showing no interest in this game. You better start playing these last 15 minutes.' Up until that time, I didn't see any interest."
Gordon Hayward scored 25 and Enes Kanter had 17 for the Jazz, who have lost five of six.
After Ellington's dunk made it 102-101, Utah's Mo Williams missed a layup that danced around the rim but wouldn't drop.
"I've never seen a layup come out like that," said Williams, returning to the lineup after missing Utah's previous 32 games with a thumb injury. "That was amazing. I've never, ever seen anything like that. I don't think I've ever missed a layup, even in practice.
"I've shot a trillion layups in my life. I've never missed one like that."
With Cleveland trailing 100-92, Irving made a gorgeous baseline spin and dropped a short jumper. He then split a pair of free throws and dropped two more to bring the Cavs within 101-97. Williams missed a 3-pointer before Irving converted a three-point play to bring Cleveland within one.
On Utah's next trip, Irving poked the ball away from Hayward, dribbled up the floor and fed Ellington, who finished strong at the rim to put the Cavs ahead by one. The play sent a shockwave through the crowd at Quicken Loans Arena that had waited all night for something good to happen.
Williams, who spent three seasons with the Cavs, found a lane to the basket but had his potential go-ahead layup make a full trip around the rim without falling. As Ellington was fouled grabbing the rebound, Williams stared at the basket in disbelief.
"I saw a lane and attacked," Williams said. "I was able to get a crack and get to the rim. I didn't have to put any English on it. I didn't have to spin it. It was a normal layup. I'm dumbfounded."
Ellington's two free throws made it 104-101, and Williams was short with a 3-pointer in the final second.
It was a crushing loss for the Jazz, who are trying to hold off the Los Angeles Lakers for the eighth playoff spot in the Western Conference.
Paul Millsap scored 16 points and Alec Burks 14 for the Jazz, which lost in overtime at Milwaukee on Monday. Utah played its third straight game without starting forward Al Jefferson, who has a sprained left ankle.
"These are tough losses," Utah coach Tyrone Corbin said. "You don't want to minimize that. They are games we felt we should have won. Closing games down, especially without Al out there, we're so used to going to him to close the games for us and he's not there.
"We've got to find a way to get better."
Corbin benched starting forward Marvin Williams for DeMarre Carroll, hoping it would spark Utah's first unit. But Carroll scored just four points and the Jazz reserves outscored the starters 56-45. Williams did not score in 14 minutes.
Randy Foye scored 11 points in the third quarter, when the Jazz went on a 16-3 run to open a 71-58 lead.
The Cavaliers were only missing two players with the flu, but they all appeared under the weather.
Cleveland lacked energy, but a dunk by Alonzo Gee in the final second of the quarter seemed to ignite the Cavs. But they fell behind 88-76, when Irving returned with 7:26 left. Shortly after that, he was bringing them back to an unexpected win.
"Absolutely we did (steal this win)," Irving said. "But the one thing I can say is we did get stops at the end. Our defence led to a couple of turnovers and baskets. I've got to be a leader out there, and it starts on the defensive end. Now that I'm preaching it, I've got to do it."
The Cavs were without starting rookie guard Dion Waiters, who missed his second straight game with a flu bug that has flattened a few teammates. Daniel Gibson also sat out with nasty stomach virus, which sidelined Tyler Zeller for one game.
NOTES: Hayward scored 15 points in the second quarter, helping the Jazz open a 51-49 halftime lead. ... The Cavs had a season-high 12 blocks. ... Corbin said there was no timetable on Jefferson, who rolled his ankle last week in a loss to Atlanta. ... Irving is the ninth player in NBA history to surpass 2,000 career points before turning 21. Irving's birthday is March 23.