The Jazz fell to 6-1 this season in Salt Lake City.
Derrick Rose chipped in 25 points and nine assists for the Bulls, who have won two of three overall and triumphed for the first time in Utah since November 24, 2004. Drew Gooden gave 18 points and Ben Gordon 15 in victory.
Mehmet Okur notched a career-high with 26 points and also added nine boards for the Jazz, who have lost two of three overall. Paul Millsap ended with 21 points and 10 rebounds, while Ronnie Brewer had 18 points. Ronnie Price totaled 11 points and eight helpers in defeat.
Price hit Okur with a backdoor pass that led to an Okur dunk to make it 96-95 with 1:01 left.
Then on the other end, Andrei Kirilenko blocked Rose's layup and the ball bounced out of bounds, but it was still Chicago ball.
Off the inbounds pass, Rose poured in a layup with 47.1 ticks left to make it 97-96.
Okur then hit a jumper just inside the three-point line, but Rose countered with a jumper of his own.
C.J. Miles then gave a layup to make it 100-99 in favor of Utah, but Chicago still had one more possession and about 11 seconds to take the lead back.
With just seconds remaining, Rose took a jumper from the top of the key, but it missed. The rebound, though, caromed its way to a wide-open Hughes, who attracted Miles on defense. Hughes, unfazed, launched a perfect jumper in his face that tickled the twine as time expired to win it.
The Bulls led 28-26 after the first quarter and jumped out to a 53-45 advantage at the break.
A Brewer layup tied the game at 57 with 7:31 left in the third stanza. Gooden responded with a jumper, but Millsap hit a free throw, Okur had a tip-in and Price's dunk gave the Jazz a 62-59 cushion.
The Jazz held the three-point lead, 75-72, heading into the final 12 minutes.
The teams traded baskets and the lead seesawed before seven straight Chicago points gave the Bulls an 85-79 lead with 6:14 left in the contest. Andres Nocioni's three sparked the run and Aaron Gray hit a jumper to cap it off.
Moments later, down by five, Millsap had three points and Price nailed a jumper to knot it up at 87-all with 3:52 showing on the clock.