MIAMI -- Aubrey Huff made quite a debut with his new team.
Huff, who was acquired in a trade with the Tampa Bay Devil Rays on Wednesday, homered to right-center in the eighth off reliever Randy Messenger (1-5) to give the Astros a 5-1 lead.
"Any time you get to a new team, it's good to get in there and contribute," Huff said.
Houston broke a three-game road losing streak, while the Marlins lost for the fourth time in their last 13 home games.
Huff's homer was part of a four-run eighth. Willy Taveras singled to lead off the inning and advanced to third as Chris Burke reached when first baseman Mike Jacobs failed to handle a low throw by shortstop Hanley Ramirez. Berkman drove in Taveras with a single to right, and Huff followed with his homer, his second hit of the game.
"It was a curveball," Huff said. "I was getting ready to hit a fastball and he just left it up a little bit."
The 30-year-old Huff hit .283 with eight home runs and 28 RBI in 63 games for the Devil Rays this season. The third baseman hit safely in 20 of his last 23 games with Tampa Bay, batting .433 with 13 doubles, five homers and 16 RBI during the stretch.
Huff had a game-winning homer against the Marlins in May for the Devil Rays, and is hitting .480 with three home runs and six RBI against Florida this season.
"He's a good hitter," Astros manager Phil Garner said. "We know that and he showed us that tonight."
Oswalt pitched 6 1/3 innings, allowing one run and six hits while striking out four. He pitched at least six innings for the 17th time in his past 18 starts.
"If you keep the score close and let them score late, that's your job," Oswalt said. "I just ran out of gas a little bit toward the end."
Willis, who began the season 1-6, entered having won five of his last six decisions. Willis went seven innings, allowing one run and six hits while striking out five.
"I'll be all right. I'll continue to give the club a chance to win," Willis said. "I won't die over it, but I am upset that we lost."
Garner pulled Oswalt in the seventh after Jeremy Hermida and Miguel Olivo reached with singles. Chad Qualls (4-2) came on and induced Reggie Abercrombie to ground into a fielder's choice and pinch-hitter Cody Ross to pop up.
Willis hit Burke with a pitch in the sixth. Burke advanced to third on Berkman's single. After Huff struck out, Preston Wilson singled up the middle to drive in Burke and give the Astros a 1-0 lead.
Jacobs tied it in the sixth with his 12th homer, a drive into the stands in right.
Florida entered the game 12th in the league with 66 errors and added three more by Jacobs, Ramirez and Willis.
"I'm not sure really why it happens," Marlins manager Joe Girardi said. "We gave up extra outs, we get ahead of guys and were not able to put them away. It could be that guys are just trying too hard, or it could be that some of them are tough plays."
Home plate umpire Rick Reed left with one out in the bottom of the second inning, with a broken blood vessel in his nose.
- Astros 2B Craig Biggio is one hit away from tying Zack Wheat for 35th on the all-time list. He has 2,883 after going hitless Thursday.
- When Willis hit Burke with the pitch it was his 14th hit batter of the season, tops in the majors.