Detroit's Richard Hamilton emerged from coach John Kuester's doghouse to score 10 points in 26 minutes off the bench, but missed his first four shots and his final eight attempts.
Milwaukee won for only the third time in nine games despite having its top frontcourt players on the bench due to injury and illness. The Pistons have lost seven of nine.
Austin Daye missed a 3-point attempt with 9 seconds left that would have given Detroit the lead. Ben Gordon tried to save it from going out of bounds, but his swipe at the ball went to Jennings, who was fouled.
Milwaukee was not in the bonus and inbounded, and Jennings was fouled with 5.9 seconds left. He calmly made both free throws to give Milwaukee a 92-88 lead. Detroit's Greg Monroe scored on a follow shot with 0.2 seconds left to close the scoring.
Hamilton had missed 10 consecutive games since playing Feb. 5 in a game that also was in Milwaukee, but had a meeting recently to clear the air with Kuester and entered the game late in the first quarter. He missed 13-of-17 shots, but had three assists, two steals and two rebounds.
Hamilton scored his first point on a free throw with 56 seconds left in the first quarter, and his first basket on a layup after receiving a long pass from Charlie Villanueva with 7:28 left in the second quarter.
Rodney Stuckey scored 25 points and Monroe added 13 for Detroit.
Carlos Delfino had 16 points and a season-high 10 rebounds for Milwaukee.
The Bucks used their 20th different starting lineup in 59 games. Milwaukee played without four key frontline players: center Andrew Bogut, out at least a week with a strained muscle near his ribcage; Luc Richard Mbah a Moute (flulike symptoms), Ersan Ilyasova (concussion) and Drew Gooden (plantar fasciitis).
Milwaukee signed center Earl Barron to a 10-day contract before the game and was forced to play him 16 minutes. He scored four points and grabbed nine rebounds.
Detroit used its advantage down low to outscore Milwaukee, 52-28, in the paint.
The Bucks took the lead for good at 77-75 on Keyon Dooling's 16-foot jumper with 10:36 left.
Jennings scored 12 points and the Bucks led, 51-50, at halftime.
Notes: Hamilton entered the game with 1:42 left in the first quarter as the Pistons' sixth man. ... Tracy McGrady was dressed, but did not play. ... Detroit G Will Bynum picked up four fouls in eight first-half minutes.