Paul Pierce led the Celtics (25-21) with 25 points and was outstanding in the third quarter when he scored 10 of Boston's 18 points and helped hold Milwaukee to 13 points.
The game turned Boston's way after they switched defensive strategies in the third quarter.
"We switched on everything, which we never do. I mean, we literally never do that," Celtics coach Doc Rivers told reporters. "They were killing us in the first half. The way we looked at it, switching couldn't have been any worse than what we normally do.
"That was a big change. It's unusual for us to give in that quickly, but we thought we needed to do it and I thought it made a big difference defensively for us."
Boston, who are seventh in the East and now four games ahead of the ninth-placed Bucks (21-25), carried the momentum into the fourth quarter and pushed their lead to 82-73 which they protected through the final eight minutes.
"Boston did a good job of taking us out of what we wanted to run," said Bucks center Drew Gooden. "They defended the pick-and-roll exceptionally well with (Kevin) Garnett."
Garnett scored 16 points and 10 rebounds and Rajon Rondo had 10 points and 14 assists for the Celtics.
Brandon Jennings led the Bucks with 19 points, Carlos Delfino added 16 and Ersan Ilyosova recorded a double-double with 12 points and 14 rebounds.