The Heat led by as many as 18 points in the second period but Milwaukee turned it into a close contest in the third and then ran off a dozen straight points in the fourth.
That gave Milwaukee a 16-point cushion and the Bucks easily held on to halt Miami's five-game winning streak. Milwaukee has won three in a row.
Jennings had 20 of his points in the second half, hitting 5-of-7 from 3-point range over the final two quarters. Drew Gooden scored 17 points for the Bucks, 12 of them in the fourth.
The Milwaukee triumph came despite a season-best 40 points from Miami's LeBron James, who made 14-of-24 from the field but turned the ball over seven times. Dwyane Wade added 23 for the Heat.
The rest of the Miami roster went 12-of-32 from the field and managed 34 points.