The series goes back to Brooklyn for Game 7 on Saturday. The winner gets Miami in the second round.
The Bulls hung in until the end even though they were missing Luol Deng and Kirk Hinrich.
A layup by Nazr Mohammed cut the Nets' lead to 93-92 with 25.2 seconds remaining.
Nate Robinson then fouled Andray Blatche, who had missed a free throw only moments earlier. This time, he hit both to make it a three-point game with 19.2 seconds left.
The Bulls had a chance to tie it, but Marco Belinelli missed a 3-pointer and Joakim Noah stepped out of bounds with about six seconds left.
Chicago still had a chance, though.
Noah tied up Williams after the inbounds, resulting in a jump ball with 3.6 seconds left.
Johnson controlled the ball, and the Nets hung on.
Gerald Wallace added 15 points as Brooklyn won its second straight.
Only eight NBA teams have come back from a 3-1 deficit to win a best-of-7 series, but the Nets are in position to do just that.
It helped that Hinrich missed his second straight game with a bruised left calf and that Deng was sidelined with flu-like symptoms, forcing the Bulls to shuffle their lineup.
Belinelli started at shooting guard with Jimmy Butler moving to small forward and scored 22 points. Robinson started his second straight game with Hinrich injured and finished with 18 points. Butler had 17 points, seven rebounds and six assists.
Noah added 14 points and 15 rebounds. Carlos Boozer scored 14 and grabbed 13 boards.
The Nets were leading 81-73 early in the fourth after 3-pointers by Wallace and C.J. Watson.
Robinson wowed the crowd when he faked picking up his dribble for a jumper and drove past a leaping Kris Humphries for a layup that made it 83-79 with about 7:30 remaining.
Noah scored on a tip-in that made it 87-85 with four minutes left. Then, after Lopez dunked, he rotated over for a huge block of Lopez, delighting the crowd.
The fans were really screaming when Belinelli made a 3 to pull Chicago within 90-88 with 2:19 remaining.
Blatche then banked in a fadeaway with 1:15 remaining, but Robinson quickly answered with just over a minute left.
He also missed a driving layup with 32 seconds to play. Boozer got called for a loose ball foul on the play, and Blatche hit the second free throw to make it 93-90.
Note: Nets coach P.J. Carlesimo had this to say about facing a short-handed Bulls team: "Starting with Derrick, their franchise player hasn't played. It seems almost every time we play them, it's a different roster."