MIAMI -- When Scott Olsen came out of the game in the eighth inning, he received a backslap from his shortstop and a standing ovation from much of the crowd.
Olsen's turbulent season took a turn for the better Sunday, when he pitched 7 1/3 innings to help Florida rally past the Houston Astros 6-5.
The victory was Olsen's first in three starts since his DUI arrest, but he said that wasn't a reason to consider the performance significant.
"We just need to win games," he said. "It doesn't matter what circumstances it's under. We just need to win."
Like Olsen, a 12-game winner as a rookie last season, the Marlins have endured a difficult year. With the pitching staff ravaged by injury, they're struggling to stay out of last place in the NL East.
Olsen, meanwhile, was fined for making an obscene gesture toward fans, then suspended for two games following a scuffle with a teammate, and now faces legal problems. The left-hander had allowed 13 runs in 10 innings in two starts since his early-morning arrest July 21, hiking his ERA to 5.53.
Sunday's victory gave him something to celebrate. Wearing sunglasses and a towel around his neck, he stood on the infield afterward accepting congratulations from a parade of teammates.
"He threw lights-out," said Cody Ross, who drove in two runs after coming off the bench in the fourth inning. "He needed it. We needed it. It was just a great day for him."
Olsen (9-9) allowed two of Houston's first three hitters to score, then settled down and retired 14 of 15 batters during one stretch.
"Olsen was great," Houston's Chris Burke said. "You don't see a lot of left-handers with command of all three pitches. That's what makes him tough."
The Astros managed only six hits and three runs off Olsen, who struck out eight and walked one.
"A nice outing -- probably his best of the year," manager Fredi Gonzalez said. "Good progress for him."
Marlins slugger Miguel Cabrera departed in the fourth inning with a bruised left elbow after being hit by a pitch. His replacement in the order, Ross, doubled home a run in the fifth to put the Marlins ahead to stay and drove in another run with a sacrifice fly.
NL batting leader Hanley Ramirez hit his 19th home run for Florida. No. 8 hitter Alfredo Amezaga drove in two runs with a groundout and a sacrifice fly for the Marlins, who went 3-3 on their homestand.
Houston's Carlos Lee hit an RBI double in the first and a three-run homer in the eighth, his 23rd. Kevin Gregg pitched the ninth for his 23rd save in 25 chances, retiring Eric Munson to foul out for the final out with the tying run on second.
"We got back close," Houston manager Phil Garner said. "That's enough of that baloney, though. We've gotten close a lot of times."
The Astros concluded a 2-4 trip and lost for the 13th time in their past 18 road games.
The next batter, Jeremy Hermida, hit a pop foul, but third baseman Ty Wigginton and shortstop Eric Bruntlett struggled with the sun and let it drop near them. Hermida then singled, and Amezaga's fly scored another run.
"That's just one of those rotten, stinking, no-good, ratty things that have happened to us this year," Garner said. "The ball gets caught up in the sun and there are two guys battling to catch it. It's not poor defense, just a rotten thing to happen."
- Astros LHP Stephen Randolph left the game in the sixth inning because of a strained left biceps. "We'll call it a 'tired' bicep for now," Garner said. "We don't know if it's serious."
- Marlins LF Josh Willingham, who left Saturday's game and went to the hospital for treatment of a kidney stone, was held out of the lineup but feeling better.
- Albers has allowed 12 home runs in 59 innings.