The Cavs trailed 94-80 early in the fourth quarter before rallying before a rowdy Christmas crowd. And as was the case in the Finals, it was Irving who made the biggest basket.
Golden State had one last chance but Kevin Durant lost his balance coming off a screen and couldn't get off a shot as time expired.
LeBron James had 31 points, and Irving added 25 for the Cavs. They were down 3-1 in the Finals before winning three straight and the championship -- the first for a Cleveland team since 1964.
Durant had 36 points in his first appearance in the league's hottest rivalry, and Thompson had 24. The Warriors had their seven-game winning streak stopped.
The Cavs couldn't quite catch the Warriors until James gave Cleveland a 105-103 lead -- its first since the opening quarter -- with a monstrous dunk that he celebrated by swinging on the rim like a kid at recess.
Stephen Curry's 3-pointer with 1:14 left put the Warriors up by three, but Irving scored on a layup and Cleveland shut down Golden State on the defensive end, forcing a 24-second violation.
Following a timeout, Irving dribbled deep into the lane and hit his off-balance shot over Thompson.
The Warriors set up a game-winning chance for Durant, but he stumbled with pressure applied by Richard Jefferson and fell to the floor and watched helplessly as Cleveland's fans roared and Cavs coach Tyronn Lue clapped and screamed.
The teams will meet again Jan. 16 and then not again unless they make it back to the Finals -- a "three-quel" that would be the first in league history.
"Just to get back here and for them to get back to our place, a lot of things have to go right," Warriors coach Steve Kerr said.
The Cavs were playing their third game without starting guard J.R. Smith, who will miss three months after undergoing surgery on a broken right thumb.
To remind their guests of what happened in June, the Cavs left a door propped open just down the hallway from Golden State's locker room where a large photo of James' game-changing, career-defining block of Andre Iguodala in Game 7 was on display.
The picture had been doctored with a Cavs championship ring taped over James' left index finger.
James heated up in the third quarter, making four 3-pointers and scoring 16 points. Durant, though, countered with 11 and helped the Warriors take a 87-80 lead into the fourth.
If there was any doubt that this game meant more than the other 81 to both squads and fan bases, Draymond Green took care of that in the opening minutes.
After being called for his second personal foul, Green stormed off the floor, cursing with every step on his way to the bench. Green, whose suspension from Game 5 of the Finals helped swing the series to Cleveland, was slapped with a technical and several of his teammates came over to calm him down before things got worse.