MILWAUKEE -- Charlie Villanueva hit his biggest 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.
"I've never really hit a game winner before," said Villanueva, who finished with 18 points and 13 rebounds.
He hadn't hit a game winner as a Piston or ever?
"I don't know, I got to go back to the archives. As a Piston, definitely no. Especially playing against my old team. Good place for it to happen."
Brandon Jennings attempted to draw a foul on a 31-foot 3-pointer on Milwaukee's next possession, but he was unsuccessful.
"I think (Brandon) was thinking they were going to foul him," Bucks coach Jim Boylan said after the game. "It didn't happen, so he took that shot and that was it."
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.
"Our guys did a really good job of locking in," Pistons coach Lawrence Frank said after the game. "Whether you're on the road or you're at home, you have to get stops. The scoring is going to go down and everything is harder to come by. We were able to get enough stops and make some big plays."
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 Boylan's first 11 games.
"Their team was playing harder than us," Jennings said. "We are not competing to their type of level. It's going to take a team effort."
Milwaukee capitalized on Detroit fouls to spark a 9-0 run that put the Bucks 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 Jose 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.