Mo Williams scored 28 points, LeBron James added 26 and visiting Cleveland beat Los Angeles, 102-87, in a game yesterday that ended with angry Lakers fans throwing dozens of foam hands onto the court.

Shaquille O'Neal had 11 points for the Cavaliers, who frustrated the defending NBA champions into technical fouls and retaliation hits in this marquee matchup of title contenders.

The Lakers' home crowd lost its holiday spirit with 4 minutes, 4 seconds left when Lamar Odom's ejection and another "T" on the Lakers' bench prompted many fans to throw their pregame giveaway foam hands onto the court.

After another foul with 3:45 left, several more were thrown along with a full water bottle, which skittered between players without hitting anyone.

"The only thing that you hope doesn't happen is one of the players getting hit or a referee getting hit, especially by a full water bottle," James said. "When that came on the court, it was coming pretty fast. You don't want that to happen because it could definitely hurt somebody. Luckily no one got hurt, and that's a good thing."

Kobe Bryant scored 35 points for the Lakers, who had won 16 of 17.

After Odom got his second technical foul in an altercation with Williams, the Lakers' bench drew a "T" - apparently on purpose - for delay of game by failing to produce a substitute in a timely manner. When referee Dan Crawford whistled that technical, the Staples Center crowd let its hands fly.

The foam hands weren't the usual No. 1 finger normally seen at sports events, but a representation of two puppet hands making the "LA" sign in a connection to Nike's advertising campaign featuring puppets of James and Bryant.

"I've never seen an L.A. crowd react like this before," said Lakers coach Phil Jackson. "I like their enthusiasm. I don't like their demonstrative manner.

"It wasn't a well-refereed game, it wasn't a very well-played game, so I think it was a reaction to that."

In other games:

* At New York, Dwyane Wade had 30 points and nine rebounds as the Miami Heat spoiled New York's return to Christmas competition, snapping the Knicks' three-game winning streak with a 93-87 victory.

Danilo Gallinari scored 26 points and David Lee had 19 points and 16 rebounds for the Knicks, who lost for just the third time in 10 games. They were playing in their 45th Christmas game, but first since 2001. In keeping with the season, the Knicks wore green uniforms and the Heat red.

* At Orlando, Rajon Rondo had 17 points, 13 rebounds and eight assists, and the Boston Celtics bullied the Magic with strong defense in an 86-77 victory, their 14th win in 15 games.

The only blow for the Celtics came in the final minutes, when Kevin Garnett jumped to block a shot by Vince Carter, only to land awkwardly and tumble to the court. He hobbled back to the bench holding his back.

Carter finished with 27 points for the Magic.

* At Phoenix, Amare Stoudemire's 26 points led six double-figure scorers in the Suns' 124-93 rout of the Los Angeles Clippers, who were led by Rasual Butler's 22.