The lead grew to 51-29 on Williams' free throws with 4:36 left in the second quarter. Then Eric Gordon, who had 10 points, made a jumper and layup in succession, helping the Hornets close the quarter on a 12-6 run to cut their deficit to 57-41 at halftime.
New Orleans was still down by 18 early in the third quarter, but later used an 8-0 run ignited by Robin Lopez's putback and Anthony Davis' layup to get as close as 66-59 in the period, and trailed only 73-65 heading into the final quarter after Jason Smith's fast-break layup in the final second.
Smith's jumper had New Orleans as close as 84-80 with more than five minutes still to go, but Lopez and Williams began to take over again, scoring the rest of the Nets' points and briefly building the lead back to nine inside the final two minutes.
"It's definitely good to get a win like this, but I try not to put too much stock into one game," Brook Lopez said.
The Hornets cut it to three three times inside the final half-minute, with Ryan Anderson, who scored 13 points, hitting a 3 and a tough turnaround, and Vasquez adding a 3.
Each time, however, Williams responded with free throws to keep New Orleans at bay.
NOTES: Davis left the game late in the third quarter with a left shoulder injury. Hornets officials said he was available to return to the game and he remained on the bench, but Williams said he chose not to play him again. ... Brooklyn's C.J. Watson, who started for Johnson, had 10 points. ... This was the first meeting between the teams this season, with the second coming March 12, the day after the Hornets' Davis turns 20. ... The Hornets had won their previous four at home against the Nets. ... Brooklyn improved to 14-12 on the road, while the Hornets fell to 10-18 at home.