Kobe Bryant had 32 points, including making all 10 of his free throws, Trevor Ariza scored a career playoff-high 20 points and Pau Gasol had 17 points and 17 rebounds for the Lakers, who dropped to 7-2 at Staples Center this postseason.
"They have home court advantage now. Now it's time to go to Denver, see if we can do the same," Bryant said. "We're not the best road team in the NBA for no reason."
The Nuggets rediscovered their toughness in the closing minutes Thursday, an attitude they lacked in their two-point loss in Game 1.
They were talking tough, too, fed up with all the hype about the NBA finals being a star-studded showcase for Cleveland's LeBron James and Bryant.
"It's not going to be us and Orlando laying down so those two could play in two weeks. It ain't going to happen," Denver's Kenyon Martin vowed. "I'm going to make sure it don't. Y'all can go home and play `NBA Live' if y'all want to see that matchup."
Martin had a say in the final 29 seconds Thursday, making a layup in traffic off a pass from Nene and Chauncey Billups hit 3 of 4 free throws to close out the win.
"There was just a demand that we had to win this game," Denver coach George Karl said. "There was an inner spirit. We're a much more smart, mentally tough team than you look at last year and what we are now. It's a great win."
Billups had 27 points and Linas Kleiza added 16 for the Nuggets, while Nene finished with six points, nine rebounds and six assists.
"To get one on the road is always tough. We came in and got it," Anthony said. "We're mentally tough and we showed that in this game coming off the loss that we gave away in Game 1."
Anthony twisted his ankle in the game, but he said he would be fine for Game 3.
The Nuggets recovered from poor free throw shooting in a two-point loss in Game 1 to make 17 consecutive foul shots until Billups missed one with 4 seconds remaining. He made the second for the three-point lead.
Derek Fisher launched a 3-pointer from the right corner that Nene got a piece of as time expired.
"I figured they were going to try to foul to prevent us from shooting a 3," he said. "I got rid of it a little quicker than I probably had to. Definitely don't want to put yourself in a position where you need that kind of shot to try and tie the game."
Tied at 101, Martin made the layup off Nene's assist that gave the Nuggets the lead for good.
Bryant dribbled upcourt and got into traffic, with Nene tipping the ball away to earn a jump ball with 18 seconds left. Gasol controlled the tip to Ariza, but the ball squirted away and Fisher fouled Billups. He made both for a 105-101 lead.
"Looked to me like Anthony pushed on Trevor and Trevor tried to get rid of the ball, and no foul was called and they recovered the basketball," Lakers coach Phil Jackson said.
Martin then fouled Gasol, who made both before Billups got fouled.
The Lakers were shaky on free throws in the fourth, making 9 of 14, while Denver didn't blink at the line. The Nuggets were 29 of 37, with Billups hitting 13 of 16 and Anthony 10 of 14.
Kleiza's 3-pointer early in the fourth quarter gave the Nuggets an 85-82 lead, their first since the game's opening minutes. Billups followed with two free throws and Anthony hit two straight baskets to extend Denver's lead to 91-84.
Bryant missed a jumper, but he came up big on the Lakers' next possession, hitting a 3-pointer with Anthony's hand in his face. Shannon Brown tossed in a 3 and Lamar Odom made two free throws as part of an 11-2 run that put the Lakers back in front 95-93.
Denver regained the lead before Bryant's 3-pointer, again with Anthony guarding closely, tied the game at 99 with 1:59 remaining. Billups made two free throws before Bryant's jumper tied it at 101.
The Lakers led by 14 early in the second quarter before Denver outscored them 14-2 to get to 55-54 at halftime.