The Pistons won the fourth of a five-game road trip which ends at Phoenix on Friday.
Tayshaun Prince added 15 points for Detroit, which led by 18 in the first half before the Trail Blazers tied it early in the second. The Pistons quickly pulled back ahead, and went up 87-70 on Carlos Delfino's dunk with 2:54 left.
Zach Randolph had 21 points and 11 rebounds for the Blazers, who have lost six of their past eight games, including a 107-99 loss at Denver on Tuesday night. Randolph has 35 double-doubles this season.
Both teams appeared sluggish from the start, but the Pistons started to pull away toward the end of the first quarter when Hamilton's long jumper made it 24-14.
The Pistons, coming off a 101-97 victory at Seattle on Tuesday night, extended their margin to 38-20 on Antonio McDyess' jumper.
The Blazers went on an 11-3 run to close out the first half to cut the deficit to 45-37.
Portland made only 14 of 39 shots (35.9 percent) from the floor in the first half, while the Pistons hit 20 of 38 (50.6 percent). For the game, Detroit shot 51.4 percent (38-for-74) and Portland shot 39.4 percent (20-for-71).