NEW YORK -- Carmelo Anthony gave New Yorkers a salute, then a show.

He went to center court before the game to thank fans for coming to Madison Square Garden, when even the Knicks themselves didn't know if people were ready for sports yet.

Then he and his teammates provided a win for their city they know has lost so much.

Anthony had 30 points and 10 rebounds, and the Knicks gave suffering New Yorkers something to cheer with a 104-84 victory over the Miami Heat in their storm-delayed season opener Friday night.

"Over the last couple of days, we didn't even know if this game was going to be played. Then before the game we look up and they say they canceled the (New York City) Marathon, so it was like, we have to go out there and play," Anthony said. "So today was something to give New York a couple hours of some peace. Come to the game, support us. We gave them a good show out there tonight, that's the least that we can do."

In the first sporting event in New York since Hurricane Sandy, the Knicks dominated a game the Heat players weren't sure should even be played with the region still so devastated. But the Knicks hoped they could provide a distraction for a few hours, and fans who were able to watch surely loved what they saw from a team that could barely compete with Miami last season.

Anthony noticed plenty of empty seats when he first came out to warm up, then saw they had almost all been taken by the time players returned for the opening tip.

"I think this win meant a lot for us, for the city, fans, you know, just everybody in New York," guard Raymond Felton said. "This was a big win, so I'm happy we got it."

Steve Novak, a non-factor against the Heat in last season's playoffs, added 17 points off the bench and Felton had 14 points and nine assists to begin his second stint with the Knicks.

LeBron James scored 23 points for the Heat, so impressive in a season-opening victory over Boston on Tuesday but never really in this one. Dwyane Wade, who thought the game should be postponed, finished with 15 points and Chris Bosh had 12 points and 11 rebounds.

The Heat beat the Knicks in five games in last season's first round, and at least for one night New York appears to have closed the gap on the champs.

But the focus surrounding this one had little to do with basketball.

Knicks players said Thursday they weren't sure what kind of crowd to expect with many New Yorkers in such bad shape and perhaps unable to travel to the game with the city's transit system crippled. New York City mayor Michael Bloomberg even decided late Friday afternoon to cancel Sunday's marathon.

But Madison Square Garden was packed with a sold-out crowd of 19,033 and lively from well before the tip right through their loud cheers when Rasheed Wallace, retired the last two seasons, entered with about 3 minutes left.

"Right from the get-go you could tell there was a difference in energy, disposition, quickness to the ball (on) both ends of the court," Heat coach Erik Spoelstra said. "They played a very good basketball game. Got us on our heels pretty much the whole game and we weren't able to recover from there. We have to move on. We're clearly much better than this."

Anthony took the microphone before the game and told fans that this was the "most important time for the city of New York to come together as one and build the city back up." Then there was a moment of silence for the victims of the disaster.

It wasn't long before it was loud again.

Anthony hit two 3-pointers in a 10-0 run that gave New York a quick 11-point lead, and he followed six consecutive points by JR Smith by pulling up for a long 3-pointer and a 30-12 lead with 1:14 left in the first quarter. Anthony was even further away when he tossed in another 3 at the buzzer, capping his 16-point period and giving the Knicks a 33-17 advantage.

The Heat couldn't get the deficit into single digits in the second, but were within 55-44 at halftime following 13 points from Wade after his scoreless first period. Anthony was 1 of 9 in the second after hitting six of 10 shots in the first.

But he had consecutive baskets in the Knicks' run of seven straight points early in the third, and the lead grew to 75-52 on Novak's 3-pointer with 3:12 remaining in the period. New York was ahead 81-63 heading into the fourth.

The Knicks' scheduled opener at Brooklyn on Thursday night was postponed, and Heat players thought this game would be, too. Wade was so sure the Heat weren't coming to New York that he didn't even bother to pack until after practice Thursday.

Miami flew afterward and finally arrived in New York after a three-hour bus ride from nearby Newark, N.J. Seeing all the traffic as New Yorkers tried to recover, Wade wrote on his Twitter account that the game shouldn't be played, a feeling he reiterated Friday morning after the Heat's shootaround.

"If we're in a car and we're in traffic for three hours, what are other people who are really affected by this, what are they doing? How are they getting around, how are they moving, et cetera?" Wade said. "So it was just like, come on man, we shouldn't be here to play a basketball game. If anything, we should be here to do something to help the city."

He decided Friday to donate his game check, around $210,000 before taxes, to relief efforts.

The Knicks finished 19 of 36 from 3-point range. Wallace made one with 41 seconds left.

Game notes

The Madison Square Garden company is donating $500,000 for storm relief and is hosting a telethon on MSG network during the Knicks' game against Dallas on Nov. 9. MSG chairman James Dolan said he was glad Friday's game was taking place, believing it was good for the city and that many people had told him they were either coming or planned to watch on TV. ... The Heat announced Friday they will unveil a banner to commemorate James' gold medal with the U.S. basketball team Saturday before they play the Denver Nuggets. It will be displayed alongside three others for players who won Olympic gold as members of the Heat -- Wade, Alonzo Mourning and Tim Hardaway. ... Marcus Camby sat out after missing most of the preseason with a sore left calf. He recently returned to practice, but Knicks coach Mike Woodson said Camby hadn't gone through enough contact workouts.

Information from The Associated Press was used in this report.