Brandon Knight's two free throws with 3:54 remaining cut Brooklyn's lead to 82-75. But Garnett rebounded Johnson's missed 3-pointer at the other end and scored to restore the Nets' nine-point advantage.
The Bucks closed to 84-78 with 2:38 left on Khris Middleton's two foul shots. Lopez then got free under the basket and Johnson found him for an easy dunk, and Garnett hit a 19-foot jumper with 1:42 remaining.
Johnson made a 17-foot jumper as the shot clock expired with 43.3 seconds left to put Milwaukee away.
NOTES: The Nets and Bucks held a pregame moment of silence in honor South African leader Nelson Mandela, who died Thursday. ... Lopez extended his double-digit scoring streak to 37 games dating to Feb. 26. ... Milwaukee was without F Caron Butler (sore left knee) for the sixth straight game and C Zaza Pachulia (sprained right foot) for his second game in a row. ... For the Nets, F Andrei Kirilenko (sore back) missed his 16th consecutive game, guards Jason Terry (bruised left knee) and Deron Williams (sprained left ankle) each missed their ninth straight and F Paul Pierce (broken right hand) won't be back for two to four weeks.