“We kind of bent but we didn’t break,” Bucks coach Jason Kidd said. “Giannis made plays down the stretch. We stayed together. We are playing against one of the best teams in the world.”

LeBron James scored 39 points for Cleveland, which lost for just the second time in its last 20 games. James had seven assists but grabbed just one rebound in the waning seconds. Kevin Love finished with 21 points.

After a slow start, the Bucks got to the Cavaliers for 39 second-quarter points. Milwaukee cracked the 100-point barrier early in the fourth, but then stalled.

Milwaukee led, 103-83, when Cleveland launched a furious comeback with James on the bench. Back-to-back 3-pointers by Dwyane Wade put the Cavaliers up 107-105, capping a 24-3 run and giving the visitors their first lead since the second quarter.

“Obviously, tonight (Wade) showed what he’s capable of still doing,” James said. “It’s a luxury having a guy like that coming off the bench.”

A 3-pointer by Brogdon put the Bucks back in front with 3:38 remaining. A traditional three-point play by James put the Cavaliers ahead 113-112 with about two minutes left.

Tony Snell responded with a 3-pointer for Milwaukee with 58.9 seconds remaining. After a Cleveland miss, Antetokounmpo grabbed a loose ball, hit a short shot and was fouled. His free throw gave the Bucks a 117-113 lead with 5.9 seconds to go.

Wade finished with 14 points for Cleveland, and Jeff Green had 13.

Milwaukee took its first lead early in the second quarter at 41-40 with Love and James on the bench. The Bucks remained hot even after the duo returned and at one point extended their advantage to 14. They led 69-58 at the half, sparked by 17 points from Middleton, who had a four-point play, as well as a 14-2 advantage in fast-break points.

Untimely fouls

Kyle Korver fouled Antetokounmpo as he attempted a desperation 3-pointer at the end of the first quarter. Antetokounmpo made all three free throws to pull Milwaukee within four points. Wade fouled Antetokounmpo with less than one second left in the third. He sank both free throws to give the Bucks a 15-point lead.

Bye bye Bradley?

Barring a playoff matchup, Wade likely played his last game at the Bradley Center, where he starred for Marquette, which shares the facility with the Bucks. The teams will move into a new arena next season.

“I’ve had a lot of amazing moments here,” Wade said. “Every time I come here and look up and see that jersey up there in the rafters, I definitely know I did something special in this city and this arena. If this was the last game, I need a piece of this building because it’s very special to me and to my basketball career.”

Tip-ins

Cavaliers >> Wade was 5 for 10 from the field after sitting out Sunday night’s game against Washington to rest. “Something with his knee has been going on, and if he needs to take off, then we understand that,” coach Tyronn Lue said. ... The Cavs scored at least 100 points for the 25th straight game.

Bucks >> Jabari Parker, who is recovering from ACL surgery on his left knee, practiced with Milwaukee’s G League affiliate for the second consecutive day. Parker, who also tore his left ACL in December 2014, is not expected to be back on the court for the Bucks until February. ... Matthew Dellavedova, who missed 15 consecutive games with left knee tendinitis, returned to the active roster, as did Snell (left patellar tendinitis) and Jason Terry (left calf strain). ... G Sean Kilpatrick, signed to a two-way contract on Monday, dressed for the game. Kilpatrick appeared in 16 games for Brooklyn before being waived on Dec. 7.

Up next

Cavaliers >> At home against Chicago on Thursday night. Cleveland won the first two games of the season series.

Bucks >> Host Charlotte on Friday night before playing the Hornets on the road on Saturday.