MILWAUKEE -- The Miami Heat have the stars, the sun and South Beach.
Somehow, the Milwaukee Bucks have bragging rights.
Brandon Jennings scored 31 points, including three 3-pointers in a critical stretch of the fourth quarter, and Milwaukee beat Miami 105-97 on Wednesday night for the Bucks' second win over the Heat this season.
Even on a huge night for LeBron James -- he scored a season-high 40 points, including a powerful windmill dunk destined for the highlight reels -- Jennings and the Bucks walked away with a win.
And, apparently, a little bit of admiration from James.
"Me and LeBron looked at each other," Jennings said. "I said, '40?' He said, 'You've got 31, though.'"
Jennings also had eight assists with no turnovers while Drew Gooden added 17 points and nine rebounds for the Bucks, who have won three straight -- including a victory over the Los Angeles Lakers last Saturday.
The Bucks also beat the Heat 91-82 in Miami on Jan. 22.
James had 24 points in the first quarter, the most points any player has scored in a quarter this season, according to STATS LLC. But he went cold in the second half.
"You always give credit where credit is due," James said. "They made some shots in the third quarter and fourth quarter. They got back into it. They made a run. We held it as much as possible."
Dwyane Wade added 23 points for the Heat, but it wasn't enough.
"What that second half showed is we still have a long way to go as a ballclub just in terms of playing consistently," Heat coach Erik Spoelstra said. "We were playing very good basketball in the first half. It's a fragile game. In this league it can go the other way quickly if you're not staying consistent to your identity."
Bucks fans chanted "overrated" in the final minutes of the game.
"We can't just have an ordinary energy game, we have to have an extraordinary game against them," Bucks coach Scott Skiles said. "The guys came out in the second half and really took it to them."
Milwaukee trailed 60-47 at the half but closed the gap in the third quarter. The Heat went into the fourth with a 79-76 lead.
Ersan Ilyasova converted a three-point play to tie the score at the start of the fourth, and Jennings hit a running layup to give the Bucks an 81-79 lead with 11:06 left.
Milwaukee's fourth-quarter run continued, and the Bucks led 87-82 when Luc Richard Mbah a Moute scored inside. The Heat than drew a shot-clock violation with the ball in James' hands, and Jennings hit a 3-pointer on the other end to give Milwaukee a 90-82 lead with 6:40 to go.
After a pair of free throws by Gooden, Wade missed a contested layup, and Jennings hit another 3-pointer.
James missed a long jumper -- and Jennings drilled yet another 3, giving the Bucks a 98-82 lead.
With Milwaukee later leading 101-92, James was called for traveling in transition with just over two minutes left.
James shot 5 for 12 in the second half.
"He's not easy to stop," Jennings said. "He got it going early, but I think we did a great job (in the) second half, just countering him on everything."
A large part of the credit goes to Mbah a Moute, the Bucks' defensive ace.
"It's a tough job, going against those guys," Mbah a Moute said. "But it's a fun job, too. Those guys are the best and it's always fun to play against the best."
Wednesday's game had all the makings of a Heat blowout early on, thanks to James. Already off to a sizzling start, James finished the first quarter in memorable fashion.
"The first half, it felt like LeBron was going to go for like 60 or whatever," Jennings said.
With under a minute left in the quarter, he took the ball away from Milwaukee's Beno Udrih, took a couple of steps and finished with a powerful windmill dunk with 32.9 seconds left in the quarter.
As if that wasn't enough, James then hit a 3 with 2.2 seconds left in the quarter.
James' huge dunk drew a gasp, then a roar from the crowd. It even had a pair of Bradley Center ushers recreating the dunk during the first-quarter break.
But the Heat couldn't keep the lead.
"I don't think we relaxed," Wade said. "They played well. Give them credit. I'm not taking anything away from the Bucks."
According to STATS, James' 24 points matches his career high in a quarter, accomplished three previous times. ... Stephen Jackson returned for the Bucks, after serving a one-game NBA suspension in Milwaukee's victory over the Los Angeles Lakers on Saturday, then being benched against Detroit on Monday. Jackson played nine-plus minutes and didn't score. ... The Bucks recalled rookie guard Darington Hobson from the Fort Wayne Mad Ants of the NBA Development League.