Stephen Curry added 23 points, eight assists and six rebounds for the Warriors, who improved to 3-3 on their eight-game homestand. Dorell Wright donated 20 points and six boards.
Carlos Boozer finished with 21 points, 10 rebounds and five assists for the Bulls, who had a six-game winning streak snapped. Luol Deng chipped in with 18 points and six boards.
Derrick Rose scored 14 points and dished out 10 assists, but turned the ball over a career-high nine times.
Neither team led by more than seven in the first half as the Warriors took a 48-47 edge into the locker room.
Chicago started the second half on a 16-3 run to take its largest lead of the game. Boozer capped the surge with a slam to give the Bulls a 63-51 margin with about 6 1/2 minutes left.
Golden State responded with an ensuing 20-7 burst to go in front. Curry tallied seven points during the stretch, including a dunk with 40.4 seconds remaining to make it 71-70. The Warriors held a 73-72 edge heading to the fourth.
Ellis scored Golden State's first eight points in the fourth to spark a 16-2 run. Curry tallied six points during the stretch, including a jumper with 5:49 left to make it an 89-74 game.
Back-to-back three-pointers from Deng and Kyle Korver got Chicago within seven, 97-90, with 47.9 seconds to play. Ellis, though, made a jumper and two free throws in the final seconds to seal the victory.
Chicago hammered the Warriors, 120-90, back on November 11 this season at the United Center...The Bulls fell to 1-1 on their five-game western road trip...Golden State went 19-of-23 from the foul line, while the Bulls went 6- of-13 from the charity stripe...David Lee had 13 points for the Warriors.