"That's why we are a great team, because other guys stepped up when we needed them," said Nowitzki, who added nine rebounds and six assists.
The Mavericks, who have the NBA's best record at 56-11, have won four straight and are 3-0 on a six-game road trip that's included victories over Detroit and New York.
The Mavs controlled the game for all but the first quarter, making the Cavaliers look inept and one-dimensional offensively on their own court.
James had a tough night shooting and got roughed up as well. He finished with 31 points but was 12-for-28 shooting as he single-handedly tried to put his team back in it.
"Our defense won the game," Nowitzki said. "LeBron is a great player and will always get his numbers, but we were making him take some tough shots."
As if James' night wasn't hard enough, he banged his head on the floor after getting spun around by Josh Howard while going for a loose ball. He was slow to get up but stayed in the game.
James also took an elbow from Nowitzki with 1:39 left and fell to the floor.
"I'm definitely not feeling 100 percent," James said. "I took two dangerous hits today."
Devin Harris scored 17 points with six assists, punishing the Cavaliers every time they tried to get something going. Erick Dampier scored 13 with nine rebounds.
"This team is not going to win 50-plus games with just Josh Howard and Dirk Nowitzki," James said. "They have great players in Devin Harris, (Jerry) Stackhouse and J.T., and their bigs are very active."
James finally got in a groove early in the fourth quarter, scoring 11 straight on a 3-pointer and a series of drives to get within six.
The Cavaliers got their only bench points when Donyell Marshall hit a 3-pointer with 5:10 left in the fourth to make it 86-80. But Nowitzki responded with a 3-pointer, then a jumper to deflate the crowd and the Cavaliers' comeback.
James said before the game that he gets energized for Western Conference teams because the East doesn't get enough respect.
"Tonight wasn't about West vs. East, it's about us getting better, getting ready for the playoffs," Nowitzki said.
James (1 of 9) and Nowitzki (1 of 6) both started off poorly, each scoring just eight points in the first half. Nowitzki (9 of 24) also tossed up an airball on a late 3-pointer.
"Dirk was cold early, but that's what makes this team so tough," Harris said. "We have so many weapons who can step up until he gets in his rhythm and that's what happened tonight."
James wasn't his usual self either and didn't attack the rim until late in the game, which surprised Stackhouse.
"He had opportunities early, but wasn't taking them for some reason," said Stackhouse, who scored 10 off the bench.
The Mavericks took over the lead for good with a 14-0 run when Cleveland went eight minutes without scoring between the first and second quarters.
"That was the difference in the game," Cavaliers coach Mike Brown said. "We fought. We didn't hang our heads or give up, but when you play against a team like that ... it puts you in a hole that's hard to fight back from."
The Cavaliers fell to 18-10 against the West and 12-2 at home. Those records lead all Eastern Conference teams, but the Cavaliers have failed to top the league's best team.
Cleveland has now lost two straight after winning eight in a row. The Mavericks beat the Cavaliers 95-92 on March 1.
Both teams were playing on the second night of a back-to-back. The Mavericks won at New York on Tuesday night and the Cavaliers lost in overtime to Charlotte.
All five Cleveland starters were in double figures. Drew Gooden scored 19 points and Sasha Pavlovic 16 for the Cavaliers. But Cleveland's bench managed just three points on 1-for-11 shooting in a combined 58 minutes.
- Mavericks swingman Devean George, who has missed the last five games (sore right knee), will rejoin the team Thursday.
- G Greg Buckner, out since he sprained his left knee March 14 against Phoenix, will practice Thursday.
- The Mavericks are five wins from the best record in franchise history. They went 60-22 last year and in 2002-03.