MILWAUKEE -- Charlie Villanueva hit another big shot in the BMO Harris Bradley Center.
Villanueva's jumper with nine seconds to play put the Pistons up for good in a back-and-forth game, and Detroit emerged with a 105-100 victory over the Milwaukee Bucks on Saturday night.
The former Bucks forward caught a pass from Will Bynum, pump-faked a hard-charging Ersan Ilyasova, stepped in and drilled the long jump shot.
Brandon Jennings attempted to draw a foul on a 31-foot 3-pointer on Milwaukee's next possession, but he was unsuccessful.
The fourth quarter featured seven ties and seven lead changes.
The Pistons, improving on defense, held Milwaukee to 39.5 percent shooting while connecting on 49.4 percent of their own shots.
Jose Calderon had 23 points and 10 assists for the Pistons, who had lost seven of their previous nine before back-to-back wins over the Spurs on Friday and the Bucks on Saturday. Guard Rodney Stuckey chipped in 19 points off the bench, Villanueva scored 18 points, and center Greg Monroe had 14 points and 13 rebounds for Detroit (20-32).
Jennings had 26 points and seven assists, but he shot just 8-for-27 from the field. Ersan Ilyasova scored 15 points and grabbed 10 rebounds, and Samuel Dalembert finished with 14 points and 12 rebounds.
The Bucks (25-24) have lost three straight and five of six after winning eight of new coach Jim Boylan's first 11 games.
Milwaukee capitalized on Detroit fouls to spark a 9-0 run that put them up 72-62 with 6:13 to play in the third quarter. Jennings scored five points during that stretch.
Most times either team began to pull away, the other countered.
Detroit went on an 11-4 run to cut Milwaukee's lead to 76-73, and the Pistons trailed 82-81 entering the fourth quarter.
Forward Kyle Singler's jumper gave Detroit a 57-56 halftime lead.
Detroit sprinted out to a 25-12 edge, fueled by Milwaukee turnovers. The Pistons scored 14 points on eight Bucks turnovers in the first quarter. The early lead over Milwaukee was nothing new for Detroit, as the Pistons have held double-digit leads over the Bucks in the first quarter in three of the teams' four meetings this season.
NOTES: Bucks center Larry Sanders (lower back contusion) missed his second straight game after colliding with Nuggets forward Kenneth Faired on Tuesday. ... Marquis Daniels (personal reasons) did not play for the Bucks. ... Forward Luc Mbah a Moute returned to action for the Bucks after missing Milwaukee's last game with a sore knee. He scored 11 points ... Milwaukee shot 35.4 percent against the Jazz on Tuesday, its 13th game this season with a field-goal rate below 40 percent. The Bucks are 1-12 in those games. ... Pistons rookie center Andre Drummond missed his second straight game with a stress fracture to his fifth lumbar vertebra. He's expected to miss four to six weeks. ... In three games with the Pistons, newly acquired point guard Calderon has averaged 13.3 points, 7.5 assists and 1.5 turnovers. He was acquired on Jan. 30 in a three-team deal that sent Tayshaun Prince and Austin Daye to the Memphis Grizzlies and Rudy Gay to the Toronto Raptors. The Pistons are 2-2 since the trade.