NEW YORK — Kobe Bryant scored 39 points, becoming the youngest player in NBA history to reach 20,000, and the Los Angeles Lakers held off the New York Knicks 95-90 Sunday.

Bryant added 11 rebounds and eight assists in his first game at Madison Square Garden in nearly two years. His 3-pointer in the opening minute of the third quarter allowed him to reach the milestone at 29 years, 122 days.

Bryant's last basket came in the final minute after the Knicks had trimmed a 25-point deficit to one. The victory capped a 3-1 road trip for the Lakers, who headed home to host Phoenix on Christmas Day.

Jamal Crawford scored 31 for the Knicks, who were again without Stephon Marbury and have lost eight of 10.

PISTONS 94, ROCKETS 82: At Auburn Hills, Mich., Richard Hamilton scored 17 points and Antonio McDyess and Rasheed Wallace added double-doubles, helping Detroit beat short-handed Houston. The Rockets started the night near full strength, but Tracy McGrady didn't come out for the second half after aggravating a sore knee, and Yao Ming missed most of the second half after needing four stitches to close a facial cut.

CELTICS 103, MAGIC 91: At Boston, Paul Pierce had 24 points to lead balanced scoring, and Boston avenged its first loss of the season on Nov. 18 by beating Orlando. Rajon Rondo added 23 points and Ray Allen 22 for the Celtics (22-3), who have the best record in the NBA. Kevin Garnett had 21 points to go along with 12 rebounds. The Celtics led by as many as 20 in the third quarter.

WARRIORS 105, CAVALIERS 96: Cleveland, Stephen Jackson scored 29 points and Baron Davis added 27 to help Golden State hand Cleveland its 10th loss in 13 games. The Warriors, playing the finale of a five-game trip, never trailed and built an 89-61 lead late in the third quarter.

NUGGETS 106, KINGS 105: At Sacramento, Linas Kieiza rebounded and put back an Allen Iverson miss with one second to go as Denver rallied in the fourth quarter. Sacramento missed four foul shots down the stretch to allow Denver to take the game-winner.