The Bucks (3-3) were buoyed by the return of reserve forward John Henson, who scored 22 points, blocked three shots and had five rebounds in 23 minutes in his first game back after suffering an Achilles injury on Oct. 28.
Henson, who played just 11 minutes on opening night against New York before the injury forced him to miss four games, provided a fourth-quarter surge, scoring 11 points. His two free throws and a hook shot gave the Bucks a 79-75 lead with 9:45 to play.
Knicks guard Derrick Williams' two free throws tied it at 81 with 7:55 to play, but the Bucks went on a 14-5 burst to move ahead 95-86 with 1:37 remaining.
"We were hoping for under 20 minutes, but he (Henson) got us going there," Bucks coach Jason Kidd said. "We need John not just on defense, but what he did offensively for us and then he stepped up to the line and made some free throws.
"He changed the game. Defensively, he blocked some shots and then on the offensive end he was getting the ball in his spots and getting to the line."
Henson was 6-of-7 from the free throw line.
Forward Giannis Antetokounmpo scored 20 points for Milwaukee, which led the entire game. Antetokounmpo has posted at least 20 points in his first four games of the season since coming back from a one-game suspension by the league. It marks the first time the second-year pro has accomplished that feat.
The Knicks (2-4) are 0-3 at home for their worst start since beginning 0-3 in 2006-07.
Forward Carmelo Anthony, who missed the last 30 games of last season after undergoing shoulder surgery, led the Knicks with 17 points. New York rookie forward Kristaps Porzingis posted his second double-double in three games with 14 points and 13 rebounds.
Williams chipped in with 15 points and guard Langston Galloway contributed 13 points and seven rebounds off the bench.
New York's starting backcourt of Jose Calderon and Sasha Vujacic were a combined 1-for-8 from the floor with four turnovers.
"We have to find a group of five guys that can collectively finish a game," Knicks coach Derek Fisher said. "That is tough to do sometimes depending on the minutes and depending on the rotations.
"We had a decent group that was in there when the game was tied and we had to get a couple of guys off the floor at least for a couple of minutes and then they can go back in and finish the game strong. But that is when it kind of got away from us a little bit."
New York got as close as two points four times in the third quarter but was unable to take the lead. A driving layup from Milwaukee center Johnny O'Bryant with 54 seconds left in the quarter gave the Bucks a 75-72 edge.
Anthony added nine points for New York in the second quarter as the Knicks whittled the Milwaukee lead to 56-53 at the half. The Bucks led by as many as 14 points midway through the quarter.
Milwaukee shot 65 percent from the floor (13-of-20) and led 30-20 after the first quarter. The Bucks opened the game on a 16-6 run with center Greg Monroe scoring six points.
NOTES: G Michael Carter-Williams (strained left ankle) was out for the Bucks. ... Milwaukee G O.J. Mayo hasn't played this season due to a right hamstring strain. ... G Arron Afflalo missed his sixth straight game for the Knicks with a strained left hamstring. ... F Chris Copeland (31) is the only Milwaukee player over 30 years old. The Bucks are the second youngest team in the league (24 years, 144 days) behind Philadelphia. ... In his first five games of the season, Knicks G Langston Galloway is leading the league in 3-point field goal percentage at .647 (11 of 17). ... Knicks rookie F Kristaps Porzingis is averaging 4.4 fouls a game in his first five games. ... Tyler Ennis made his first start of the season at point guard, scoring four points with three assists in 17 minutes. He was plagued by early foul trouble. ... Bucks F Jabari Parker started his second straight game after recovering from a torn ACL in his left knee that saw him play only 25 games last season. Parker scored six points in 17 minutes. ... F Carmelo Anthony has led the Knicks in scoring in five of six games.