Lakers coach Mike Brown was simply red-faced after a non-call in the waning seconds gave Denver one last shot at the victory.
"A step-back, that's my favorite shot," said Harrington, who hit two big 3-pointers earlier in the fourth quarter. "I thought it was going to go in."
Matt Barnes was fouled on the rebound and sank two free throws with two-tenths of a second left.
Pau Gasol added 14 points and 17 rebounds for the Lakers, who won for the third time in 10 road games this season and prevailed in Denver for only the second time in their past seven trips to the Pepsi Center.
The Lakers took control after Nuggets center Timofey Mozgov rolled his left ankle following a bucket early in the second half. He was helped to the locker room by Chris Andersen and Julyan Stone without putting any pressure on his left foot, and didn't return. The Nuggets said X-rays were negative.
His coach, George Karl, came by his locker after the game and asked how he was doing.
"Could be better," said Mozgov, who still wasn't putting any weight on the foot.
Mozgov was injured when he tried to hustle back on defense after a layup.
Two minutes later, Denver's leading scorer, Gallinari, was accidentally poked in his left eye by Metta World Peace and retreated to the locker room for a few minutes to replace his contact while the Lakers put the finishing touches on a 10-2 run.
Gallinari returned to the court but sat out the final six minutes with blurry vision. He was held to six points on 1-of-9 shooting.
Harrington, who led Denver with 24 points, hit back-to-back 3-pointers that kept the Nuggets close in the final minutes.
And after Nene's slam with 28 seconds left cut the Lakers' lead to 91-89, Bynum missed a dunk with 11 seconds left. After the officials reviewed the tape, they overturned their initial ruling that the ball went off a Nuggets player and out of bounds.
"Some nights, that's what happens," Bynum said, shrugging, "but I'm supposed to put them in the rim."
His coach was livid.
"Obviously, it was a missed call, and that missed call was tough to swallow," Brown said. "Drew has a clean dunk and he gets fouled and it ends up being Denver's ball in a two-point game. That's tough to swallow when it's in somebody else's building.
"We didn't execute right down the stretch but we got lucky and had a clean dunk at the rim and we got fouled. It's tough to sit there and watch a no-call at that point in the game."
On the inbound, Ty Lawson found his lane to the basket blocked and so he passed to Harrington, who found World Peace in his face and had to step back to try to sink the 3-pointer.
"We made it really hard on ourselves, but it's good to get a win," Brown said. "Our defense got us a win in a tough environment. What an ugly game, we found a way to win.
"I'm a little disappointed the way we executed down the stretch and disappointed in how the game was called down the stretch," Brown added. "In a tight ballgame, you hope that you got something better from both parties, from our guys and from the official."
The Nuggets were hoping for a better look.
Karl wanted Lawson to go to the hoop with about 5 seconds left, but Derek Fisher didn't let him past.
"He played great defense, so I had to go to the second option and I saw Al and he had a good shot when he stepped back, and it almost went in," Lawson said. "He'd hit two big 3s. He had the hot hand, so we definitely wanted to get him the ball."
Usually, it's the Lakers who are wearied after flying into Denver on the red-eye having played the night before in L.A. and it's the Nuggets who are well-rested.
Not this time.
The Lakers were hunkered down in snowy Denver on Thursday night while the Nuggets were beating the Clippers by 21 points at Staples Center and then flying back to Denver, which was getting hit by a storm that dumped more than a foot of snow on the Mile High City.
It showed as the Lakers negated the Nuggets' superior speed by getting back on defense often enough to keep the game from turning into a track meet.
Behind Bynum's 15 first-half points, the Lakers took a 44-41 lead into the locker room after stifling both Denver's fast-break and Gallinari, who averages 17.5 points.
It was noted before the game that Karl finally had a roster with enough big men to match up with the Lakers' size, but he said he wanted nothing to do with a matchup like that.
"This team goes to the post as much as anybody in basketball. I don't want to try to beat them power versus power; I want to go speed. I want pace versus power," Karl said before tipoff. "We're always going to try to outrun them."
The Lakers controlled the tempo instead.
The Nuggets took their first lead, at 47-46, on Gallinari's 3-pointer with 10:34 left in the third quarter, and a half-minute later Mozgov went up for a bucket that made it 49-46 and tried to get back on defense quickly.
His left foot wasn't flat on the floor and he tripped, immediately rolling around in pain.
Brown said he didn't think PG Steve Blake would play on the Lakers' trip. He is out with broken cartilage in his ribs. ... Brewer returned to action after missing the Clippers game to deal with a personal issue.