Marco Belinelli's driving layup in the closing seconds put the Bulls on top for good as Chicago outlasted the Brooklyn Nets, 83-82, at the United Center.
Belinelli finished with a team-high 19 points, while Luol Deng followed with 17 and Joakim Noah contributed a double-double with 12 points and 10 rebounds for the Bulls, who have won two straight and five of their last six.
Deron Williams dropped in a game-high 24 points for the Nets, but could not connect on a game-tying jumper following Belinelli's decisive basket.
Brook Lopez added 18 points and 10 boards, and Joe Johnson poured in 16 points as Brooklyn had its two-game winning streak snapped.
"I don't want to take anything away from them, but we kind of lost this game with mistakes," Williams said.
The Bulls carried a 67-62 lead into the fourth quarter, but Brooklyn opened the frame with a 15-4 run to jump ahead, 77-71.
Marquis Teague responded with four straight points to bring the Bulls back within two before Williams was fouled while shooting a 3-pointer and made 2- of-3 at the line to give the Nets a 79-75 advantage with 2:01 left to play.
After the teams traded turnovers on the next two possessions, Belinelli converted a driving layup to make it a two-point game.
Noah stripped the ball away from Johnson at the other end and Deng took advantage of Brooklyn's second straight turnover with a dunk to knot the game at 79-79 with a minute remaining.
Lopez had a chance to put the Nets back on top on the ensuing possession, but his baseline jumper rimmed out and Noah grabbed the rebound.
Belinelli then received a pass at the top of the key before cutting to his left and racing down a wide open lane for an easy layup and an 81-79 lead with 22.1 seconds to go.
Williams had a chance to tie the game following a timeout, but his fadeaway jumper from the right elbow was too short and Deng snagged the rebound, leading to Belinelli's game-sealing foul shots.
Williams drained a long trey as time expired to account for the final margin.
"We've lost games like that and we've won games like that," said Deng. "They had us. We never gave up, we kept playing and we found a way."
Chicago raced out to an early lead, scoring the first six points of the first quarter to kick off a 15-6 run capped with five straight points by Belinelli.
But Williams sank three shots from beyond the arc as part of a personal 11-6 push that sparked a 16-6 run overall to give Brooklyn a 22-21 lead with 2 1/2 minutes left in the first quarter.
The Nets carried a 24-23 edge into the second, which saw four lead changes and two ties as the teams continued to trade blows.
The last lead change of the first half came with a little over three minutes left when a Carlos Boozer jumper gave the Bulls a 38-37 advantage. Noah followed with a layup about a minute later and after an Andray Blatche putback at the other end again made it a one-point game, Chicago closed out the second quarter with a 6-2 push to take a 46-41 lead into the break.
Chicago managed to take a pair of nine-point leads in the early portion of the third quarter until a 12-2 spurt put Brooklyn on top, 58-57, with less than five minutes left.
The Bulls, however, closed out the frame with a 10-4 run to take a 67-62 lead into the fourth.
Chicago has won five of the last six meetings between the teams ... Boozer finished with 15 points for the Bulls, who shot 44 percent from the floor ... Brooklyn was held to just 38.7 percent shooting, but held a 41-33 advantage on the glass ... Chicago outscored Brooklyn, 42-30, in the paint.