Mo Williams scored 24 points, and LeBron James and Delonte West had 18 apiece for the Cavs, who had to scrap to improve to 15-0 on their home floor and remain the league's only unblemished team at home.
Afterward, James knew he and his teammates salvaged what would have been a depressing holiday.
"Would have ruined my Christmas," he said.
Cleveland, which had played flawlessly at home most of this season, trailed 89-82 before storming back with three free throws by James, a 3-pointer by Williams and five more foul shots in the last 26 seconds. But none of that would have been possible if the Cavs' hadn't done it with their defense as Williams and Ben Wallace drew charging fouls to fuel the final push.
Antawn Jamison scored 28 points, and Mike James 26 for the Wizards, who dropped their eighth straight and continue to find new ways to lose. Washington has lost 13 games it has led in the fourth quarter this season.
Some of the Wizards weren't happy with calls that could have gone either down the stretch.
"It's tough because we had a chance to win," James said. "We're up six and the calls didn't go our way, man. But that's the way it goes sometimes."
The Cavaliers' home winning streak was as good as history when Jamison drained a 3-pointer with 1:40 left to put the Wizards ahead by seven points.
But James was fouled shooting a 3 and, after starting 3-of-7 from the line, Cleveland's superstar made three straight from the line to pull Cleveland to 89-85. Williams then drew a charge on Jamison in the lane and then demanded the ball from James and got it before hitting a 3-pointer to make it 89-88 with 1:03 to go.
James missed for Washington and Jamison fouled out while battling Anderson Varejao for a rebound. Varejao, a 68 percent free-throw shooter, made both to give the Cavs a 90-88 lead, and Cleveland got the ball right back when Caron Butler was called for charging into Ben Wallace. The Wizards had to foul and Williams made them pay by hitting two free throws to make it 92-89.
The Wizards still had a chance to tie, but James, recently acquired in a trade from Memphis, missed a 3-pointer and West made 1-of-2 foul shots to ice it.
"Not a pretty one and we're not satisfied at all," LeBron James said. "But we'll take the win."
During their home streak, the Cavs have been blowing teams out, but a a sloppy third quarter left them in an unfamiliar position of trailing entering the fourth.
The Wizards turned nine turnovers by Cleveland in the third into 13 points and Mike James scored eight straight points in the final 2:40 as Washington opened a 71-68 lead, stunning Cavs fans who had been in a festive mood from the opening tip.
The Wizards-Cavaliers' holiday matchup looked great on paper before the season started. After all, the clubs have met in the playoffs three straight years with last season's series best remembered for Washington's hard fouls on James as well as DeShawn Stevenson's endless trash talking at Cleveland's superstar.