Mo Williams scored a game-high 25 points and drilled a fade-away jumper over Brandon Jennings at the buzzer, lifting Cleveland to an 83-81 win over the Milwaukee Bucks.
Anthony Parker netted 14 points, Daniel Gibson scored 12, and Anderson Varejao pulled down 13 rebounds for the Cavaliers, who snapped a three-game skid.
Keyon Dooling had 18 points for the Bucks, who lost for the eighth time in the last nine tries against the Cavaliers. Jennings had just three points on 1- of-10 shooting for Milwaukee, which has lost four in a row overall.
Cleveland's Drew Gooden hit two free throws to tie the game with 2:39 left and both teams then missed on opportunities. John Salmons was called for traveling, but Williams and Gibson both missed jumpers, the latter a three- point try.
Salmons was off the mark on a jumper with just over a minute left, but Gibson failed on a three-point attempt from the left corner.
Milwaukee squandered that opportunity as Corey Maggette drove into the lane and tried to find Gooden under the bucket, but the pass went out of bounds with 23.7 seconds left.
Williams was tripped and fouled by Jennings with 5.3 seconds left. After the inbounds pass, Williams dribbled to his left before hitting a jumper to the left of the foul line just before the clock showed zero.
"You always dwell on hitting the game-winner," Williams said. "Even when you were a kid, you always count down before you shoot it. This is definitely not pressure to take those shots."
The Cavs shot just 36.6 percent in the opening half, missing on all five three-point tries and faced a 44-34 deficit. A layup by Joey Graham capped nine consecutive points by the Cavaliers, as they grabbed a 53-52 edge midway through the third. The hosts, though, trailed 68-65 going to the fourth.
"It was basically just Mo breaking us down," Bucks coach Scott Skiles said. "We were a little bit flat-footed, but we regrouped. Keyon gave us a big lift. We took the lead back. We're not respectful yet for our execution on the offensive end."
Cleveland trailed by as many as eight early in the final quarter, but a Williams jumper tied it at 77 with 4:24 remaining.
Gibson departed the contest with 6:38 remaining after jamming his left shoulder. Gibson collided into Milwaukee's Ersan Ilyasova, who was setting a screen for Salmons at the top of the key. Gibson, though, returned to the contest.
Milwaukee has lost six straight at Cleveland...Salmons had 14 points, while Maggette and Luc Mbah a Moute each had 10...The Bucks shot 37.8 percent from the field, but committed just eight turnovers, leading to five Cleveland points.