Duckworth (3-1) may have been close to being removed in the first inning, when he gave up two hits and three walks. His bases-loaded pass to Richard Hidalgo gave the Astros a 2-0 lead.
The righthander recovered, allowing the Phillies to rally from a 3-0 deficit. Duckworth surrendered three runs and five hits with four walks and three strikeouts.
"The first inning was tough," Duckworth said. "I wasn't throwing strikes and I got behind in the count."
The six double plays were one shy of the major league record held by the Astros, who turned seven against the San Francisco Giants on May 4, 1969.
Thome's homer in the ninth cleared the second deck in right field and was estimated at 443 feet.
"We scored nine runs and I'm real happy with that," Phillies manager Larry Bowa said. "I wasn't worried when we were down three runs, not in this park. I thought Duckworth pitched a good game for us."
Morgan Ensberg's RBI triple made it 3-0 in the second. But the Phillies began their comeback in the fourth on Pat Burrell's sacrifice fly.
Philadelphia settled for one run in the fifth as Duckworth grounded into a double play with runners at the corners and none out.
The Phillies reached starter Scott Linebrink and rookie reliever Nate Bland for three runs in the sixth to take the lead. Linebrink was lifted after giving up a leadoff double to Thome.
After Bobby Abreu's bases-loaded groundout tied it, the Astros intentionally walked David Bell to reload the bases. But Bland walked Todd Pratt to force in the go-ahead run, and Philadelphia made it 5-3 when rookie Marlon Byrd reached on shortstop Adam Everett's error.
Jimmy Rollins' two-run single made it 8-4 in the eighth as the Phillies improved to 7-0 on Saturdays.
Astros left fielder Lance Berkman was ejected by plate umpire Dan Iassaogna in the seventh inning. Berkman struck out swinging but objected to called strikes on the first two pitches of the at-bat.
Houston's bullpen has been a strength this season, but in this one four relivers combined to allow six runs and five hits in four innings.
After Linebrink gave up the double to Polanco, Bland allowed an infield single to Thome, then hit Burrell to load the bases.
Astros pitchers issued nine walks on the day.